diff --git a/.babelrc b/.babelrc
new file mode 100644
index 000000000..556bf555f
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,33 @@
+{
+ "presets": [
+ [
+ "@babel/env",
+ {
+ "corejs": "3.6",
+ "useBuiltIns": "entry"
+ }
+ ]
+ ],
+ "plugins": [
+ [
+ "@babel/plugin-proposal-class-properties",
+ {
+ "loose": true
+ }
+ ],
+ [
+ "@babel/plugin-proposal-private-property-in-object",
+ {
+ "loose": true
+ }
+ ],
+ [
+ "@babel/plugin-proposal-private-methods",
+ {
+ "loose": true
+ }
+ ],
+ ["@babel/plugin-transform-arrow-functions"],
+ ["@babel/plugin-transform-object-assign"]
+ ]
+}
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 000000000..5f8e362b4
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,6 @@
+.husky/
+dist/
+node_modules/
+reports/
+*.md
+*.d.ts
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 000000000..ab9cc70e5
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,43 @@
+{
+ "env": {
+ "node": true,
+ "es2021": true,
+ "jest": true
+ },
+ "extends": [
+ "airbnb-base",
+ "prettier",
+ "plugin:json/recommended",
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "plugins": ["@typescript-eslint", "unicorn"],
+ "parser": "@typescript-eslint/parser",
+ "globals": {},
+ "parserOptions": {
+ "ecmaVersion": 12,
+ "sourceType": "module"
+ },
+ "rules": {
+ "import/prefer-default-export": "off",
+ "unicorn/filename-case": [
+ "error",
+ { "cases": { "camelCase": true, "pascalCase": true, "kebabCase": true } }
+ ],
+ "unicorn/no-instanceof-array": "error",
+ "unicorn/no-static-only-class": "error",
+ "unicorn/consistent-destructuring": "error",
+ "unicorn/better-regex": "error",
+ "unicorn/no-for-loop": "error",
+ "unicorn/prefer-array-some": "error",
+ "unicorn/explicit-length-check": "error",
+ "unicorn/prefer-array-find": "error",
+ "unicorn/no-lonely-if": "error",
+ "unicorn/prefer-includes": "error",
+ "unicorn/prefer-array-flat-map": "error",
+ "unicorn/no-useless-spread": "error",
+ "unicorn/no-useless-length-check": "error",
+ "unicorn/prefer-export-from": "error",
+ "import/no-unresolved": "off",
+ "import/extensions": "off"
+ }
+}
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..a484c8097
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,26 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: '[ISSUE]'
+labels: bug
+assignees: ''
+---
+
+**Describe the issue**
+Enter a clear and concise description of what the bug/issue is.
+
+**To Reproduce**
+Mention the steps to reproduce the behavior that causes the bug/issue:
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Required information (please complete the following information):**
+
+- Package version: [e.g., v0.1.1]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md
new file mode 100644
index 000000000..250e51b38
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.md
@@ -0,0 +1,19 @@
+---
+name: Feature Request
+about: Suggest an idea for this project
+title: '[ENHANCEMENT]'
+labels: enhancement
+assignees: ''
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 000000000..f5c84544e
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,20 @@
+## Description of the change
+
+< Description >
+
+## Checklists
+
+### Development
+
+- [ ] My code follows the style guidelines of this project
+- [ ] I have performed a self-review of my own code
+- [ ] I have commented my code, particularly in hard-to-understand areas
+- [ ] I have made corresponding changes to the documentation
+- [ ] The code changed/added as part of this pull request has been covered with tests
+- [ ] All tests related to the changed code pass in development
+
+### Code review
+
+- [ ] This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
+- [ ] Changes have been reviewed by at least one other engineer
+- [ ] Issue from task tracker has a link to this pull request
diff --git a/.github/workflows/check-pr-title.yaml b/.github/workflows/check-pr-title.yaml
new file mode 100644
index 000000000..2651d9efa
--- /dev/null
+++ b/.github/workflows/check-pr-title.yaml
@@ -0,0 +1,16 @@
+name: Check PR Title
+
+on:
+ pull_request:
+ types: ['opened', 'reopened', 'edited', 'synchronize']
+
+jobs:
+ check_pr_title:
+ name: Check PR Title
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Source Branch
+ uses: actions/checkout@v3
+
+ - name: Check PR Title
+ uses: rudderlabs/github-action-check-pr-title@v1.0.7
diff --git a/.github/workflows/create-hotfix-branch.yaml b/.github/workflows/create-hotfix-branch.yaml
new file mode 100644
index 000000000..6edbfc011
--- /dev/null
+++ b/.github/workflows/create-hotfix-branch.yaml
@@ -0,0 +1,50 @@
+name: Create New Hotfix Branch
+
+on:
+ workflow_dispatch:
+
+jobs:
+ create-branch:
+ name: Create New Branch
+ runs-on: ubuntu-latest
+
+ if: github.ref == 'refs/heads/main'
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ # In order to make a commit, we need to initialize a user.
+ # You may choose to write something less generic here if you want, it doesn't matter functionality wise.
+ - name: Initialize Mandatory Git Config
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email noreply@github.com
+ - name: Create hotfix Branch
+ id: create-hotfix-branch
+ env:
+ HUSKY: 0
+ run: |
+ source_branch_name=${GITHUB_REF##*/}
+ git fetch origin main --depth=1
+ git merge origin/main
+ current_version=$(jq -r .version package.json)
+
+ npm version patch --no-git-tag-version
+ new_version=$(jq -r .version package.json)
+ git reset --hard
+
+ branch_name="hotfix/${new_version}"
+
+ echo "New hotfix branch name is $branch_name"
+ git checkout -b "$branch_name"
+ git push --set-upstream origin "$branch_name"
+ echo "::set-output name=source_branch_name::$source_branch_name"
+ echo "::set-output name=branch_name::$branch_name"
diff --git a/.github/workflows/deploy-to-dev.yaml b/.github/workflows/deploy-to-dev.yaml
new file mode 100644
index 000000000..e08b45015
--- /dev/null
+++ b/.github/workflows/deploy-to-dev.yaml
@@ -0,0 +1,68 @@
+name: Deploy Configurations To Development DB
+
+on:
+ workflow_dispatch:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - develop
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+
+ # Either triggered from develop branch or merged pull requests
+ if: github.event.pull_request.merged == true || github.ref == 'refs/heads/develop'
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ - name: Execute Unit Tests
+ env:
+ HUSKY: 0
+ run: |
+ npm run test
+
+ - name: Install Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.9.13'
+
+ - name: Display Python Version
+ run: |
+ which python
+ python -c "import sys; print(sys.version)"
+
+ - name: Install Python Dependencies
+ run: python -m pip install --upgrade pip requests jsondiff
+
+ - name: Display Working Directory Files
+ run: |
+ echo current directory
+ pwd
+ ls -a
+
+ - name: Display Current Package Version
+ run: echo $(jq -r .version package.json)
+
+ - name: Deploy To Development DB
+ env:
+ API_USER: ${{secrets.DEV_USERNAME}}
+ API_PASSWORD: ${{secrets.DEV_PASSWORD}}
+ run: |
+ python scripts/deployToDB.py https://api.dev.rudderlabs.com
diff --git a/.github/workflows/deploy-to-prod.yaml b/.github/workflows/deploy-to-prod.yaml
new file mode 100644
index 000000000..97f256a8a
--- /dev/null
+++ b/.github/workflows/deploy-to-prod.yaml
@@ -0,0 +1,69 @@
+name: Deploy Configurations To Production DB
+
+on:
+ workflow_dispatch:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - main
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+
+ # Either trigger from main or merged pull requests
+ if: ((startsWith(github.event.pull_request.head.ref, 'release/') || startsWith(github.event.pull_request.head.ref, 'hotfix-release/')) && github.event.pull_request.merged == true) || github.ref == 'refs/heads/main'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ - name: Execute Unit Tests
+ env:
+ HUSKY: 0
+ run: |
+ npm run test
+
+ - name: Install Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.9.13'
+
+ - name: Display Python Version
+ run: |
+ which python
+ python -c "import sys; print(sys.version)"
+
+ - name: Install Python Dependencies
+ run: python -m pip install --upgrade pip requests jsondiff
+
+ - name: Display Working Directory Files
+ run: |
+ echo current directory
+ pwd
+ ls -a
+
+ - name: Display Current Package Version
+ run: echo $(jq -r .version package.json)
+
+ - name: Deploy To Production DB
+ env:
+ API_USER: ${{secrets.PROD_USERNAME}}
+ API_PASSWORD: ${{secrets.PROD_PASSWORD}}
+ run: |
+ python scripts/deployToDB.py https://api.rudderstack.com
diff --git a/.github/workflows/deploy-to-sources-dev.yaml b/.github/workflows/deploy-to-sources-dev.yaml
new file mode 100644
index 000000000..e9f3a804d
--- /dev/null
+++ b/.github/workflows/deploy-to-sources-dev.yaml
@@ -0,0 +1,68 @@
+name: Deploy Configurations To Sources Development DB
+
+on:
+ workflow_dispatch:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - develop
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+
+ # Either triggered from develop branch or merged pull requests
+ if: github.event.pull_request.merged == true || github.ref == 'refs/heads/develop'
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ - name: Execute Unit Tests
+ env:
+ HUSKY: 0
+ run: |
+ npm run test
+
+ - name: Install Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.9.13'
+
+ - name: Display Python Version
+ run: |
+ which python
+ python -c "import sys; print(sys.version)"
+
+ - name: Install Python Dependencies
+ run: python -m pip install --upgrade pip requests jsondiff
+
+ - name: Display Working Directory Files
+ run: |
+ echo current directory
+ pwd
+ ls -a
+
+ - name: Display Current Package Version
+ run: echo $(jq -r .version package.json)
+
+ - name: Deploy To Sources Development DB
+ env:
+ API_USER: ${{secrets.DEV_USERNAME}}
+ API_PASSWORD: ${{secrets.DEV_PASSWORD}}
+ run: |
+ python scripts/deployToDB.py https://sources-api.dev.rudderlabs.com
diff --git a/.github/workflows/deploy-to-staging.yaml b/.github/workflows/deploy-to-staging.yaml
new file mode 100644
index 000000000..d8825ed90
--- /dev/null
+++ b/.github/workflows/deploy-to-staging.yaml
@@ -0,0 +1,68 @@
+name: Deploy Configurations To Staging DB
+
+on:
+ workflow_dispatch:
+ pull_request:
+ types:
+ - opened
+ branches:
+ - main
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+
+ # Either from release candidate branches or pull requests must trigger
+ if: (startsWith(github.ref, 'refs/heads/hotfix-release/') || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/main/')) || (startsWith(github.event.pull_request.head.ref, 'release/') || startsWith(github.event.pull_request.head.ref, 'hotfix-release/'))
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ - name: Execute Unit Tests
+ env:
+ HUSKY: 0
+ run: |
+ npm run test
+
+ - name: Install Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.9.13'
+
+ - name: Display Python Version
+ run: |
+ which python
+ python -c "import sys; print(sys.version)"
+
+ - name: Install Python Dependencies
+ run: python -m pip install --upgrade pip requests jsondiff
+
+ - name: Display Working Directory Files
+ run: |
+ echo current directory
+ pwd
+ ls -a
+
+ - name: Display Current Package Version
+ run: echo $(jq -r .version package.json)
+
+ - name: Deploy To Staging DB
+ env:
+ API_USER: ${{secrets.DEV_USERNAME}}
+ API_PASSWORD: ${{secrets.DEV_PASSWORD}}
+ run: |
+ python scripts/deployToDB.py https://api.staging.rudderlabs.com
diff --git a/.github/workflows/dev-deploy.yaml b/.github/workflows/dev-deploy.yaml
deleted file mode 100644
index 1a3d994e3..000000000
--- a/.github/workflows/dev-deploy.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-name: Deploy config to DB
-
-on:
- push:
- branches:
- - develop
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout current develop
- uses: actions/checkout@v3
- with:
- ref: develop
- - name: Set Node 16
- uses: actions/setup-node@v3
- with:
- node-version: 16
- - name: Install dependencies
- run: npm install
- - name: Run tests
- run: npm run test
- - name: Install python
- uses: actions/setup-python@v4
- with:
- python-version: '3.9.13'
- - name: Setup Python
- run: python -m pip install --upgrade pip requests jsondiff
- - name: Display Python version
- run: python -c "import sys; print(sys.version)"
- - name: Display current location files
- run: |
- echo current directory
- ls -a
- pwd
- which python
- - name: Display current Version of Config-Schema
- run: echo $(head -1 .version)
- - name: Execute script
- env:
- API_USER: ${{secrets.DEV_USERNAME}}
- API_PASSWORD: ${{secrets.DEV_PASSWORD}}
- run: |
- python scripts/action.py https://api.dev.rudderlabs.com
- python scripts/action.py https://api.staging.rudderlabs.com
- python scripts/action.py https://sources-api.dev.rudderlabs.com
diff --git a/.github/workflows/draft-new-release.yaml b/.github/workflows/draft-new-release.yaml
new file mode 100644
index 000000000..be035cdf7
--- /dev/null
+++ b/.github/workflows/draft-new-release.yaml
@@ -0,0 +1,95 @@
+name: Draft New Release
+
+on: workflow_dispatch
+
+jobs:
+ draft-new-release:
+ name: Draft New Release
+ runs-on: ubuntu-latest
+
+ if: github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/hotfix/')
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ # In order to make a commit, we need to initialize a user.
+ # You may choose to write something less generic here if you want, it doesn't matter functionality wise.
+ - name: Initialize Mandatory Git Config
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email noreply@github.com
+
+ # Calculate the next release version based on conventional semantic release
+ - name: Create Release Branch
+ id: create-release
+ env:
+ HUSKY: 0
+ run: |
+ source_branch_name=${GITHUB_REF##*/}
+ release_type=release
+ grep -q "hotfix/" <<< "${GITHUB_REF}" && release_type=hotfix-release
+ git fetch origin main --depth=1
+ git merge origin/main
+ current_version=$(jq -r .version package.json)
+
+ npm run release -- --skip.commit --skip.tag --skip.changelog
+ new_version=$(jq -r .version package.json)
+ git reset --hard
+
+ branch_name="${release_type}/${new_version}"
+
+ echo "Source branch for new release is $source_branch_name"
+ echo "Current version is $current_version"
+ echo "Release type is $release_type"
+ echo "New version is $new_version"
+ echo "New release branch name is $branch_name"
+ git checkout -b "$branch_name"
+ git push --set-upstream origin "$branch_name"
+
+ echo "source_branch_name=$source_branch_name" >> $GITHUB_OUTPUT
+ echo "branch_name=$branch_name" >> $GITHUB_OUTPUT
+ echo "new_version=$new_version" >> $GITHUB_OUTPUT
+ echo "CURRENT_VERSION_VALUE=$current_version" >> $GITHUB_ENV
+ echo "NEW_VERSION_VALUE=$new_version" >> $GITHUB_ENV
+
+ - name: Update Changelog & Bump Version
+ id: finish-release
+ env:
+ HUSKY: 0
+ run: |
+ echo "Current version: $CURRENT_VERSION_VALUE"
+ echo "New version: $NEW_VERSION_VALUE"
+ npm run release -- -a --skip.tag
+ git push
+
+ - name: Create Pull Request
+ uses: repo-sync/pull-request@v2
+ with:
+ source_branch: ${{ steps.create-release.outputs.branch_name }}
+ destination_branch: 'main'
+ github_token: ${{ secrets.PAT }}
+ pr_title: 'chore(release): pull ${{ steps.create-release.outputs.branch_name }} into main'
+ pr_body: ':crown: *An automated PR*'
+
+ - name: Delete Hotfix Base Branch
+ uses: dawidd6/action-delete-branch@v3
+ if: startsWith(github.ref, 'refs/heads/hotfix/')
+ with:
+ branches: '${{ steps.create-release.outputs.new_version }}'
+ prefix: 'hotfix/'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/housekeep.yaml b/.github/workflows/housekeep.yaml
new file mode 100644
index 000000000..247f5b666
--- /dev/null
+++ b/.github/workflows/housekeep.yaml
@@ -0,0 +1,44 @@
+name: Handle Stale Items
+
+on:
+ schedule:
+ # Run everyday at 1 AM
+ - cron: '0 1 * * *'
+
+jobs:
+ prs:
+ name: Clean Up Stale PRs
+ runs-on: ubuntu-latest
+
+ permissions:
+ pull-requests: write
+
+ steps:
+ - name: Clean Up Stale PRs
+ uses: actions/stale@v7
+ with:
+ repo-token: ${{ github.token }}
+ operations-per-run: 200
+ stale-pr-message: 'This PR is considered to be stale. It has been open 20 days with no further activity thus it is going to be closed in 7 days. To avoid such a case please consider removing the stale label manually or add a comment to the PR.'
+ close-pr-message: 'This PR is stale. Hence, closing it.'
+ days-before-pr-stale: 20
+ days-before-pr-close: 7
+ stale-pr-label: 'Stale'
+
+ branches:
+ name: Clean Up Stale Branches
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Delete Stale Branches
+ uses: beatlabs/delete-old-branches-action@v0.0.9
+ with:
+ repo_token: ${{ github.token }}
+ date: '6 months ago'
+ dry_run: false
+ delete_tags: false
+ extra_protected_branch_regex: ^(develop|main|release.*|hotfix/.*|hotfix-release/.*)$
+ exclude_open_pr_branches: true
diff --git a/.github/workflows/prod-deploy.yaml b/.github/workflows/prod-deploy.yaml
deleted file mode 100644
index 6fc8c764d..000000000
--- a/.github/workflows/prod-deploy.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: Deploy config to DB
-
-on:
- push:
- branches:
- - master
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout current master
- uses: actions/checkout@v3
- - name: Set Node 16
- uses: actions/setup-node@v3
- with:
- node-version: 16
- - name: Install dependencies
- run: npm install
- - name: Run Tests
- run: npm run test
- - name: Install python
- uses: actions/setup-python@v4
- with:
- python-version: '3.x'
- - name: Setup Python
- run: python -m pip install --upgrade pip requests jsondiff
- - name: Display Python version
- run: python -c "import sys; print(sys.version)"
- - name: Display current Version of Config-Schema
- run: echo $(head -1 .version)
- - name: Execute script
- env:
- API_USER: ${{secrets.PROD_USERNAME}}
- API_PASSWORD: ${{secrets.PROD_PASSWORD}}
- run: |
- python scripts/action.py https://api.rudderstack.com
diff --git a/.github/workflows/publish-new-release.yaml b/.github/workflows/publish-new-release.yaml
new file mode 100644
index 000000000..a19b5cc8a
--- /dev/null
+++ b/.github/workflows/publish-new-release.yaml
@@ -0,0 +1,86 @@
+name: Publish New Release
+
+on:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - main
+
+jobs:
+ release:
+ name: Publish New Release
+ runs-on: ubuntu-latest
+
+ if: (startsWith(github.event.pull_request.head.ref, 'release/') || startsWith(github.event.pull_request.head.ref, 'hotfix-release/')) && github.event.pull_request.merged == true # only merged pull requests must trigger this job
+
+ steps:
+ - name: Extract Version
+ id: extract-version
+ run: |
+ BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
+ VERSION=${BRANCH_NAME#hotfix-}
+ VERSION=${VERSION#release/}
+
+ echo "release_version=$VERSION" >> $GITHUB_OUTPUT
+
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ # In order to make a commit, we need to initialize a user.
+ # You may choose to write something less generic here if you want, it doesn't matter functionality wise.
+ - name: Initialize Mandatory Git Config
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email noreply@github.com
+
+ - name: Tag & Create GitHub Release
+ id: create_release
+ env:
+ HUSKY: 0
+ GITHUB_TOKEN: ${{ secrets.PAT }}
+ CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{ secrets.PAT }}
+ run: |
+ git tag -a ${{ steps.extract-version.outputs.release_version }} -m "chore: release v${{ steps.extract-version.outputs.release_version }}"
+ git push origin refs/tags/${{ steps.extract-version.outputs.release_version }}
+ npm run release:github
+ echo "DATE=$(date)" >> $GITHUB_ENV
+
+ - name: Pull Changes Into develop Branch
+ uses: repo-sync/pull-request@v2
+ with:
+ source_branch: 'main'
+ destination_branch: 'develop'
+ github_token: ${{ secrets.PAT }}
+ pr_title: 'chore(release): pull main into develop post release v${{ steps.extract-version.outputs.release_version }}'
+ pr_body: ':crown: *An automated PR*'
+
+ - name: Delete Hotfix Release Branch
+ uses: koj-co/delete-merged-action@master
+ if: startsWith(github.event.pull_request.head.ref, 'hotfix-release/')
+ with:
+ branches: 'hotfix-release/*'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Delete Release Branch
+ uses: koj-co/delete-merged-action@master
+ if: startsWith(github.event.pull_request.head.ref, 'release/')
+ with:
+ branches: 'release/*'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/report-code-coverage.yaml b/.github/workflows/report-code-coverage.yaml
new file mode 100644
index 000000000..a58a2d238
--- /dev/null
+++ b/.github/workflows/report-code-coverage.yaml
@@ -0,0 +1,20 @@
+# https://github.com/marketplace/actions/jest-coverage-report
+name: 'Code Coverage'
+on:
+ pull_request:
+ branches:
+ - '*'
+
+jobs:
+ coverage:
+ name: Code Coverage
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Coverage Report
+ uses: ArtiomTr/jest-coverage-report-action@v2
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 000000000..31608000c
--- /dev/null
+++ b/.github/workflows/test.yaml
@@ -0,0 +1,37 @@
+name: Unit Tests
+
+on:
+ workflow_dispatch:
+ pull_request:
+ types: ['opened', 'reopened', 'synchronize']
+ push:
+ branches: ['main', 'develop']
+
+jobs:
+ test:
+ name: Unit Tests
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version-file: '.nvmrc'
+ cache: 'npm'
+
+ - name: Install Dependencies
+ env:
+ HUSKY: 0
+ run: |
+ npm ci
+
+ - name: Execute Unit Tests
+ env:
+ HUSKY: 0
+ run: |
+ npm run test
diff --git a/.gitignore b/.gitignore
index 5f13d9b06..82cbe9ecc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,6 @@ heapdump-*
# Ignore git files
git
+
+reports
+.eslintcache
diff --git a/.husky/commit-msg b/.husky/commit-msg
new file mode 100755
index 000000000..9db017095
--- /dev/null
+++ b/.husky/commit-msg
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npm run commit-msg
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 000000000..d4a43dd13
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npm run pre-commit
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 000000000..b8c9fdcbe
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+16.15.1
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 000000000..3ff90506c
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,5 @@
+node_modules/
+reports/
+CHANGELOG.md
+CONTRIBUTING.md
+LICENSE
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 000000000..09dcf1c1e
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,7 @@
+{
+ "trailingComma": "all",
+ "tabWidth": 2,
+ "semi": true,
+ "singleQuote": true,
+ "printWidth": 100
+}
diff --git a/.version b/.version
deleted file mode 100644
index 18efdb9ae..000000000
--- a/.version
+++ /dev/null
@@ -1 +0,0 @@
-1.1.8
diff --git a/.versionrc b/.versionrc
new file mode 100644
index 000000000..e24769222
--- /dev/null
+++ b/.versionrc
@@ -0,0 +1,12 @@
+{
+ "bumpFiles": [
+ {
+ "filename": "package.json",
+ "type": "json"
+ },
+ {
+ "filename": "package-lock.json",
+ "type": "json"
+ }
+ ]
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 000000000..87ac3b99a
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,29 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Run Validations Test",
+ "type": "node",
+ "request": "launch",
+ "args": ["--destinations=${input:destinations}", "--sources=${input:sources}"],
+ "program": "${workspaceFolder}/test/validation.test.ts"
+ }
+ ],
+ "inputs": [
+ {
+ "id": "destinations",
+ "type": "promptString",
+ "description": "Enter destinations separated by comma",
+ "default": "all"
+ },
+ {
+ "id": "sources",
+ "type": "promptString",
+ "description": "Enter sources separated by comma",
+ "default": "all"
+ }
+ ]
+}
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 000000000..c265a5560
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1 @@
+* @ItsSudip @shrouti1507 @sandeepdsvs @krishna2020
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..6c6fff30e
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,36 @@
+# Contributing to RudderStack
+
+Thanks for taking the time and for your help in improving this project!
+
+## Table of contents
+
+- [**RudderStack Contributor Agreement**](#rudderstack-contributor-agreement)
+- [**How you can contribute to RudderStack**](#how-you-can-contribute-to-rudderstack)
+- [**Committing**](#committing)
+- [**Getting help**](#getting-help)
+
+## RudderStack Contributor Agreement
+
+To contribute to this project, we need you to sign the [**Contributor License Agreement (“CLA”)**][CLA] for the first commit you make. By agreeing to the [**CLA**][CLA], we can add you to list of approved contributors and review the changes proposed by you.
+
+## How you can contribute to RudderStack
+
+If you come across any issues or bugs, or have any suggestions for improvement, you can navigate to the specific file in the [**repo**](https://github.com/rudderlabs/rudder-config-schema), make the change, and raise a PR.
+
+You can also contribute to any open-source RudderStack project. View our [**GitHub page**](https://github.com/rudderlabs) to see all the different projects.
+
+## Committing
+
+We prefer squash or rebase commits so that all changes from a branch are committed to master as a single commit. All pull requests are squashed when merged, but rebasing prior to merge gives you better control over the commit message.
+
+## Getting help
+
+For any questions, concerns, or queries, you can start by asking a question in our [**Slack**](https://rudderstack.com/join-rudderstack-slack-community/) community.
+
+### We look forward to your feedback on improving this project!
+
+
+
+
+[issue]: https://github.com/rudderlabs/rudder-config-schema/issues/new
+[CLA]: https://rudderlabs.wufoo.com/forms/rudderlabs-contributor-license-agreement
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..6792ccbfc
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 RudderStack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index c7174441e..829c2ad3f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,43 @@
-# rudder-config-schema
\ No newline at end of file
+
+
+
+
+
+
+The Customer Data Platform for Developers
+
+
+
+ Website
+ ·
+ Documentation
+ ·
+ Community Slack
+
+
+
+---
+
+# \*\*rudder-config-schema\*\*
+
+\*\*Repo description\*\*
+
+## Overview
+
+\*\*Describe what the software does.\*\*
+
+## Features
+
+\*\*Describe the key features, if necessary.\*\*
+
+## Getting started
+
+\*\*Describe how to use the software.\*\*
+
+## Contribute
+
+We would love to see you contribute to RudderStack. Get more information on how to contribute [**here**](CONTRIBUTING.md).
+
+## License
+
+The RudderStack \*\*software name\*\* is released under the [**MIT License**](https://opensource.org/licenses/MIT).
diff --git a/commitlint.config.js b/commitlint.config.js
new file mode 100644
index 000000000..84dcb122a
--- /dev/null
+++ b/commitlint.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ['@commitlint/config-conventional'],
+};
diff --git a/data/destinations/active_campaign/db_config.json b/data/destinations/active_campaign/db_config.json
deleted file mode 100644
index 82013fa06..000000000
--- a/data/destinations/active_campaign/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "ACTIVE_CAMPAIGN",
- "displayName": "ActiveCampaign",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiUrl",
- "apiKey",
- "eventKey",
- "actid"
- ]
- },
- "secretKeys": [
- "apiKey",
- "eventKey",
- "actid"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/active_campaign/metadata.json b/data/destinations/active_campaign/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/active_campaign/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/active_campaign/schema.json b/data/destinations/active_campaign/schema.json
deleted file mode 100644
index f7c4ca5b4..000000000
--- a/data/destinations/active_campaign/schema.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiUrl",
- "apiKey"
- ],
- "properties": {
- "apiUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
- },
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
- },
- "actid": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adj/db_config.json b/data/destinations/adj/db_config.json
deleted file mode 100644
index 2805d3812..000000000
--- a/data/destinations/adj/db_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "ADJ",
- "displayName": "Adjust",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "appToken",
- "customMappings",
- "delay",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "unity",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "appToken",
- "customMappings",
- "delay",
- "environment",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "partnerParamsKeys"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "flutter": [
- "useNativeSDK"
- ],
- "unity": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adj/metadata.json b/data/destinations/adj/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/adj/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adj/schema.json b/data/destinations/adj/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/adj/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/adj/ui_config.json b/data/destinations/adj/ui_config.json
deleted file mode 100644
index 6067d9a64..000000000
--- a/data/destinations/adj/ui_config.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "APP Token",
- "value": "appToken",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid App Token",
- "required": true,
- "placeholder": "e.g: bSjsdGYsOo9sasdjw23Shj"
- },
- {
- "type": "checkbox",
- "label": "Send to Production Environment on Adjust",
- "value": "environment",
- "default": false
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": false
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- },
- {
- "title": "Map Events to Adjust Event Tokens",
- "fields": [
- {
- "type": "dynamicForm",
- "labelLeft": "Event Name",
- "labelRight": "Event Token",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: product_purchased",
- "placeholderRight": "e.g: xcdrf5",
- "value": "customMappings"
- }
- ]
- },
- {
- "title": "Rudderstack Parameters to Partner Parameters",
- "fields": [
- {
- "type": "dynamicForm",
- "labelLeft": "Rudderstack Properties",
- "labelRight": "Adjust Partner Parameters",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: revenue",
- "placeholderRight": "e.g: value",
- "value": "partnerParamsKeys",
- "footerNote": "RudderStack will take the values for these properties from the track call and map them to the corresponding Adjust Partner Parameter keys."
- }
- ]
- },
- {
- "title": "Delay Time before SDK initialization",
- "fields": [
- {
- "type": "textInput",
- "label": "Delay Time (in seconds)",
- "value": "delay",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": false,
- "placeholder": "7"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/adobe_analytics/db_config.json b/data/destinations/adobe_analytics/db_config.json
deleted file mode 100644
index f1af7c688..000000000
--- a/data/destinations/adobe_analytics/db_config.json
+++ /dev/null
@@ -1,110 +0,0 @@
-{
- "name": "ADOBE_ANALYTICS",
- "displayName": "Adobe Analytics",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "trackingServerUrl",
- "reportSuiteIds",
- "sslHeartbeat",
- "heartbeatTrackingServerUrl",
- "eventsToTypes",
- "marketingCloudOrgId",
- "dropVisitorId",
- "trackingServerSecureUrl",
- "timestampOption",
- "preferVisitorId",
- "rudderEventsToAdobeEvents",
- "trackPageName",
- "contextDataMapping",
- "contextDataPrefix",
- "eVarMapping",
- "hierMapping",
- "listMapping",
- "listDelimiter",
- "customPropsMapping",
- "propsDelimiter",
- "eventMerchEventToAdobeEvent",
- "eventMerchProperties",
- "productMerchEventToAdobeEvent",
- "productMerchProperties",
- "productMerchEvarsMap",
- "productIdentifier",
- "proxyNormalUrl",
- "proxyHeartbeatUrl",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "trackingServerUrl",
- "reportSuiteIds",
- "sslHeartbeat",
- "heartbeatTrackingServerUrl",
- "useUtf8Charset",
- "useSecureServerSide",
- "eventsToTypes",
- "marketingCloudOrgId",
- "dropVisitorId",
- "trackingServerSecureUrl",
- "timestampOption",
- "preferVisitorId",
- "noFallbackVisitorId",
- "timestampOptionalReporting",
- "rudderEventsToAdobeEvents",
- "trackPageName",
- "contextDataMapping",
- "contextDataPrefix",
- "useLegacyLinkName",
- "pageNameFallbackTostring",
- "mobileEventMapping",
- "sendFalseValues",
- "eVarMapping",
- "hierMapping",
- "listMapping",
- "listDelimiter",
- "customPropsMapping",
- "propsDelimiter",
- "eventMerchEventToAdobeEvent",
- "eventMerchProperties",
- "productMerchEventToAdobeEvent",
- "productMerchProperties",
- "productMerchEvarsMap",
- "productIdentifier",
- "proxyNormalUrl",
- "proxyHeartbeatUrl",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adobe_analytics/metadata.json b/data/destinations/adobe_analytics/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/adobe_analytics/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adobe_analytics/schema.json b/data/destinations/adobe_analytics/schema.json
deleted file mode 100644
index 5fcd300d2..000000000
--- a/data/destinations/adobe_analytics/schema.json
+++ /dev/null
@@ -1,378 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "reportSuiteIds"
- ],
- "type": "object",
- "properties": {
- "trackingServerUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
- },
- "trackingServerSecureUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
- },
- "reportSuiteIds": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$"
- },
- "sslHeartbeat": {
- "type": "boolean"
- },
- "heartbeatTrackingServerUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
- },
- "useUtf8Charset": {
- "type": "boolean"
- },
-
- "useSecureServerSide": {
- "type": "boolean"
- },
-
- "proxyNormalUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
- },
-
- "proxyHeartbeatUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
- },
- "eventsToTypes": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(initHeartbeat|heartbeatPlaybackStarted|heartbeatPlaybackPaused|heartbeatPlaybackResumed|heartbeatPlaybackCompleted|heartbeatPlaybackInterrupted|heartbeatContentStarted|heartbeatContentComplete|heartbeatAdBreakStarted|heartbeatAdBreakCompleted|heartbeatAdStarted|heartbeatAdCompleted|heartbeatAdSkipped|heartbeatSeekStarted|heartbeatSeekCompleted|heartbeatBufferStarted|heartbeatBufferCompleted|heartbeatQualityUpdated|heartbeatUpdatePlayhead)$"
- }
- }
- }
- },
- "marketingCloudOrgId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "dropVisitorId": {
- "type": "boolean"
- },
- "timestampOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disabled|hybrid|optional|enabled)$"
- },
- "timestampOptionalReporting": {
- "type": "boolean"
- },
- "noFallbackVisitorId": {
- "type": "boolean"
- },
- "preferVisitorId": {
- "type": "boolean"
- },
- "rudderEventsToAdobeEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "trackPageName": {
- "type": "boolean"
- },
- "contextDataMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "contextDataPrefix": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "useLegacyLinkName": {
- "type": "boolean"
- },
- "pageNameFallbackTostring": {
- "type": "boolean"
- },
- "mobileEventMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "sendFalseValues": {
- "type": "boolean"
- },
- "eVarMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "hierMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "listMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "listDelimiter": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "^$|(^env[.].+)|^(\\||:|,|;|\/)$"
- }
- }
- }
- },
- "customPropsMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "propsDelimiter": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "^$|(^env[.].+)|^(\\||:|,|;|\/)$"
- }
- }
- }
- },
- "eventMerchEventToAdobeEvent": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventMerchProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventMerchProperties": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "productMerchEventToAdobeEvent": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "productMerchProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "productMerchProperties": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "productMerchEvarsMap": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "productIdentifier": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(name|id|sku)$"
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- },
- "android": {
- "type": "boolean"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adobe_analytics/ui_config.json b/data/destinations/adobe_analytics/ui_config.json
deleted file mode 100644
index 35145b54e..000000000
--- a/data/destinations/adobe_analytics/ui_config.json
+++ /dev/null
@@ -1,614 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Tracking Server URL",
- "value": "trackingServerUrl",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Please put a valid url"
-
- },
- {
- "type": "textInput",
- "label": "Tracking Server Secure URL",
- "value": "trackingServerSecureUrl",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Please put a valid url"
- },
- {
- "type": "textInput",
- "label": "Report Suite ID(s)",
- "value": "reportSuiteIds",
- "required": true,
- "footerNote": "You can add multiple report suite ids by separated by commas."
- },
- {
- "type": "checkbox",
- "label": "Check for Heartbeat calls to be made over https",
- "value": "sslHeartbeat",
- "default": true
- },
- {
- "type": "textInput",
- "label": "Heartbeat Tracking Server URL",
- "value": "heartbeatTrackingServerUrl",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Please put a valid url"
- },
- {
- "type": "checkbox",
- "label": "Use UTF-8 charset",
- "value": "useUtf8Charset",
- "default": true
- },
- {
- "type": "checkbox",
- "label": "Use Secure URL for Server-side",
- "value": "useSecureServerSide",
- "default": true
- },
- {
- "type": "textInput",
- "label": "Adobe Analytics Javascript SDK URL",
- "value": "proxyNormalUrl",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Please put a valid url"
- },
- {
- "type": "textInput",
- "label": "Adobe Analytics Hearbeat SDK URL",
- "value": "proxyHeartbeatUrl",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Please put a valid url"
- }
- ]
- },
- {
- "title": "Adobe Heartbeat Settings",
- "fields": [
- {
- "type": "dynamicSelectForm",
- "label": "Map your Rudder video events with types of Video Events",
- "labelLeft": "Video Event Name",
- "labelRight": "Type of Video Event",
- "value": "eventsToTypes",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g. video playback started",
- "options": [
- {
- "name": "Initialise Heartbeat",
- "value": "initHeartbeat"
- },
- {
- "name": "Heartbeat Playback Started",
- "value": "heartbeatPlaybackStarted"
- },
- {
- "name": "Heartbeat Playback Paused",
- "value": "heartbeatPlaybackPaused"
- },
- {
- "name": "Heartbeat Playback Resumed",
- "value": "heartbeatPlaybackResumed"
- },
- {
- "name": "Heartbeat Playback Completed",
- "value": "heartbeatPlaybackCompleted"
- },
- {
- "name": "Heartbeat Playback Interrupted",
- "value": "heartbeatPlaybackInterrupted"
- },
- {
- "name": "Heartbeat Content Start",
- "value": "heartbeatContentStarted"
- },
- {
- "name": "Heartbeat Content Complete",
- "value": "heartbeatContentComplete"
- },
- {
- "name": "Heartbeat Ad BreakStarted",
- "value": "heartbeatAdBreakStarted"
- },
- {
- "name": "Heartbeat Ad Break Completed",
- "value": "heartbeatAdBreakCompleted"
- },
- {
- "name": "Heartbeat Ad Start",
- "value": "heartbeatAdStarted"
- },
- {
- "name": "Heartbeat Ad Completed",
- "value": "heartbeatAdCompleted"
- },
- {
- "name": "Heartbeat Ad Skipped",
- "value": "heartbeatAdSkipped"
- },
- {
- "name": "Heartbeat Seek Started",
- "value": "heartbeatSeekStarted"
- },
- {
- "name": "Heartbeat Seek Completed",
- "value": "heartbeatSeekCompleted"
- },
- {
- "name": "Heartbeat Buffer Started",
- "value": "heartbeatBufferStarted"
- },
- {
- "name": "Heartbeat Buffer Completed",
- "value": "heartbeatBufferCompleted"
- },
- {
- "name": "Heartbeat Quality Updated",
- "value": "heartbeatQualityUpdated"
- },
- {
- "name": "Heartbeat Playhead Update",
- "value": "heartbeatUpdatePlayhead"
- }
- ]
- }
- ]
- },
- {
- "title": "Identity Resolution",
- "fields": [
- {
- "type": "textInput",
- "label": "Marketing Cloud Organization Id",
- "value": "marketingCloudOrgId"
- },
- {
- "type": "checkbox",
- "label": "Drop Visitor Id",
- "value": "dropVisitorId",
- "default": true
- }
- ]
- },
- {
- "title": "Timestamps",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Timestamp Option",
- "value": "timestampOption",
- "required": false,
- "options": [
- {
- "name": "Timestamp Hybrid",
- "value": "hybrid"
- },
- {
- "name": "Timestamp Optional",
- "value": "optional"
- },
- {
- "name": "Timestamp Enabled",
- "value": "enabled"
- },
- {
- "name": "Timestamp Disabled",
- "value": "disabled"
- }
- ],
- "defaultOption": {
- "name": "Timestamp Disabled",
- "value": "disabled"
- }
- },
- {
- "type": "checkbox",
- "label": "Send Both Timestamp and VisitorID for Timestamp Optional Reporting Suites",
- "value": "timestampOptionalReporting",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "No Fallbacks for Visitor ID",
- "value": "noFallbackVisitorId",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Prefer Visitor Id",
- "value": "preferVisitorId",
- "default": false
- }
- ]
- },
- {
- "title": "Event and Property Mappings",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder Events to Adobe Custom Events",
- "value": "rudderEventsToAdobeEvents",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. Product Searched",
- "placeholderRight": "event1,event2",
- "labelLeft": "Event Name",
- "labelRight": "Adobe Custom Event",
- "footerNote": "Add one event or many events for adobe custom events separated by comma"
- },
- {
- "type": "checkbox",
- "label": "Enable pageName for Track Events",
- "value": "trackPageName",
- "default": true
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Context data to Adobe Context Data",
- "value": "contextDataMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. page.name",
- "placeholderRight": "pName",
- "labelLeft": "Context Data path",
- "labelRight": "Adobe Context Data property name",
- "footerNote": "Add properties under context key in rudder payload"
- },
- {
- "type": "textInput",
- "placeholder": "eg: rudder-",
- "value": "contextDataPrefix",
- "label": "Prefix to add before all contextData property.",
- "required": false
- },
- {
- "type": "checkbox",
- "label": "Use Legacy LinkName",
- "value": "useLegacyLinkName",
- "default": true
- },
- {
- "type": "checkbox",
- "label": "Page Name Fallback to Screen",
- "value": "pageNameFallbackTostring",
- "default": true
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Mobile events",
- "value": "mobileEventMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. page.name",
- "placeholderRight": "pName",
- "labelLeft": "Context Data path",
- "labelRight": "Adobe Context Data property name",
- "footerNote": "Add properties under context key in rudder payload"
- },
- {
- "type": "checkbox",
- "label": "Send false value from properties ",
- "value": "sendFalseValues",
- "default": true
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Properties to Adobe eVars",
- "value": "eVarMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. phone",
- "placeholderRight": "2",
- "labelLeft": "Rudder Property",
- "labelRight": "eVar Index",
- "footerNote": "Only give the index of the eVar"
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Properties to Adobe Hierarchy properties",
- "value": "hierMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. phone",
- "placeholderRight": "2",
- "labelLeft": "Rudder Property",
- "labelRight": "hier Index",
- "footerNote": "Only give the index of the hier"
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Properties to Adobe list properties",
- "value": "listMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. listProp",
- "placeholderRight": "2",
- "labelLeft": "Rudder Property",
- "labelRight": "list Index",
- "footerNote": "The list properties should be an array/string separated by commas"
- },
- {
- "type": "dynamicSelectForm",
- "label": "Map your Rudder Property with Delimiters for list properties",
- "labelLeft": "Rudder Property",
- "labelRight": "List Delimiter",
- "value": "listDelimiter",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g. prop",
- "options": [
- {
- "name": "|",
- "value": "|"
- },
- {
- "name": ":",
- "value": ":"
- },
- {
- "name": ",",
- "value": ","
- },
- {
- "name": ";",
- "value": ";"
- },
- {
- "name": "/",
- "value": "/"
- }
- ],
- "defaultOption": {
- "name": ",",
- "value": ","
- }
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Properties to Adobe Custom properties",
- "value": "customPropsMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g phone",
- "placeholderRight": "2",
- "labelLeft": "Rudder Property",
- "labelRight": "prop Index",
- "footerNote": "Only give the index of the prop"
- },
- {
- "type": "dynamicSelectForm",
- "label": "Map your Rudder Property with Delimiters for Adobe Custom properties",
- "labelLeft": "Rudder Property",
- "labelRight": "List Delimiter",
- "value": "propsDelimiter",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g. phone",
- "options": [
- {
- "name": "|",
- "value": "|"
- },
- {
- "name": ":",
- "value": ":"
- },
- {
- "name": ",",
- "value": ","
- },
- {
- "name": ";",
- "value": ";"
- },
- {
- "name": "/",
- "value": "/"
- }
- ],
- "defaultOption": {
- "name": ",",
- "value": ","
- }
- }
- ]
- },
- {
- "title": "Merchandise Event Level Settings",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder Events to Adobe Merchandise events",
- "value": "eventMerchEventToAdobeEvent",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g Order Completed",
- "placeholderRight": "event1",
- "labelLeft": "Rudder Event",
- "labelRight": "Adobe Event"
- },
- {
- "type": "dynamicCustomForm",
- "value": "eventMerchProperties",
- "customFields": [
- {
- "type": "textInput",
- "placeholder": "e.g. currency",
- "value": "eventMerchProperties",
- "label": "Currency/Incremental properties to add to merchandise events at event level",
- "required": false
- }
- ]
- }
- ]
- },
- {
- "title": "Merchandise Product Level Settings",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder Events to Adobe Merchandise events",
- "value": "productMerchEventToAdobeEvent",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g Order Completed",
- "placeholderRight": "event1",
- "labelLeft": "Rudder Event",
- "labelRight": "Adobe Event"
- },
- {
- "type": "dynamicCustomForm",
- "value": "productMerchProperties",
- "customFields": [
- {
- "type": "textInput",
- "placeholder": "e.g. currency",
- "value": "productMerchProperties",
- "label": "Currency/Incremental properties to add to merchandise events at product level",
- "required": false
- }
- ]
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder Properties to eVars at product level",
- "value": "productMerchEvarsMap",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. product_id",
- "placeholderRight": "2",
- "labelLeft": "Rudder Property",
- "labelRight": "eVar Index"
- },
- {
- "type": "singleSelect",
- "label": "Product Identifier",
- "value": "productIdentifier",
- "required": false,
- "footerNote": "Adobe Analytics only accepts a single product identifier. Use this option to choose whether we send product name, id, or sku.",
- "options": [
- {
- "name": "Product Name",
- "value": "name"
- },
- {
- "name": "ID",
- "value": "id"
- },
- {
- "name": "SKU",
- "value": "sku"
- }
- ],
- "defaultOption": {
- "name": "Product Name",
- "value": "name"
- }
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- },
- {
- "title": "Consent Settings",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "oneTrustCookieCategories",
- "label": "OneTrust Cookie Categories",
- "customFields": [
- {
- "type": "textInput",
- "placeholder": "Marketing",
- "value": "oneTrustCookieCategory",
- "label": "Category Name/ID",
- "required": false
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/adroll/db_config.json b/data/destinations/adroll/db_config.json
deleted file mode 100644
index d50439d64..000000000
--- a/data/destinations/adroll/db_config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "ADROLL",
- "displayName": "Adroll",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "advId",
- "pixId",
- "eventsMap",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "advId",
- "pixId",
- "eventsMap",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- },
- "options": {
- "isBeta": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adroll/metadata.json b/data/destinations/adroll/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/adroll/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/adroll/schema.json b/data/destinations/adroll/schema.json
deleted file mode 100644
index 941c8bdeb..000000000
--- a/data/destinations/adroll/schema.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "advId",
- "pixId"
- ],
- "type": "object",
- "properties": {
- "advId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "pixId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/af/db_config.json b/data/destinations/af/db_config.json
deleted file mode 100644
index de38f1521..000000000
--- a/data/destinations/af/db_config.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "AF",
- "displayName": "AppsFlyer",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "devKey",
- "appleAppId",
- "useRichEventName",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "track",
- "screen",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "devKey",
- "sharingFilter",
- "useRichEventName",
- "androidAppId",
- "appleAppId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "statusCallbackUrls",
- "apiToken"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "reactnative": [
- "useNativeSDK"
- ],
- "cordova": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/af/metadata.json b/data/destinations/af/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/af/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/af/schema.json b/data/destinations/af/schema.json
deleted file mode 100644
index 7b7476c19..000000000
--- a/data/destinations/af/schema.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "devKey"
- ],
- "properties": {
- "devKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "androidAppId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "appleAppId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "useRichEventName": {
- "type": "boolean"
- },
- "sharingFilter": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "android": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- },
- "cordova": {
- "type": "boolean"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/af/ui_config.json b/data/destinations/af/ui_config.json
deleted file mode 100644
index 4c4e4edf3..000000000
--- a/data/destinations/af/ui_config.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "AppsFlyer Dev Key",
- "value": "devKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AppsFlyer Dev Key",
- "required": true,
- "placeholder": "e.g: bSjsdGYsOo9sjw23Shj"
- },
- {
- "type": "textInput",
- "label": "Android App ID",
- "value": "androidAppId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Android App ID",
- "required": false,
- "placeholder": "com.mypackage.example",
- "footerNote": "Field is required if os.name is set to android"
- },
- {
- "type": "textInput",
- "label": "Apple App ID",
- "value": "appleAppId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Apple App ID",
- "required": false,
- "placeholder": "123456789",
- "footerNote": "Field is required if os.name is set to any of the Apple OS names (ios, ipados, watchos, tvos etc.)"
- },
- {
- "type": "checkbox",
- "label": "Use Rich Event Names",
- "value": "useRichEventName",
- "footerNote": "To include screen/page name in Screen/Page event names (ex: Viewed Contacts Page)",
- "default": false
- },
- {
- "type": "textInput",
- "label": "Sharing Filter",
- "value": "sharingFilter",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid sharing filter. Default value is used",
- "required": false,
- "placeholder": "['googleadwords_int', 'adcolony_int']",
- "default": "all",
- "footerNote": "Use the filter to fulfill regulatory requirements like GDPR and CCPA, to comply with user opt-out mechanisms, and for other business logic reasons. "
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- },
- {
- "title": "User Deletion",
- "fields": [
- {
- "type": "textInput",
- "label": "Status Callback Urls",
- "value": "statusCallbackUrls",
- "regex": "^(?!.*\\.ngrok\\.io).*$",
- "placeholder": "https://examplecontroller.com/opengdpr_callbacks",
- "footerNote": "Endpoint for status callbacks to be sent with the deletion request status changes. If you want to provide more than one callbacks, provide them as comma separated strings."
- },
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiToken",
- "placeholder": "c81aaf36-8323-4bb6-b5a8-asdfasdfas4f3c",
- "secret": true,
- "footerNote": "Provide your V1.0 API Token."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/airship/db_config.json b/data/destinations/airship/db_config.json
deleted file mode 100644
index 2d3dac61a..000000000
--- a/data/destinations/airship/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "AIRSHIP",
- "displayName": "Airship",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "appKey",
- "dataCenter"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/airship/metadata.json b/data/destinations/airship/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/airship/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/airship/schema.json b/data/destinations/airship/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/airship/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/airship/ui_config.json b/data/destinations/airship/ui_config.json
deleted file mode 100644
index 9fcc49e63..000000000
--- a/data/destinations/airship/ui_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
- "secret": true,
- "footerNote": "API Key from Settings > Tokens > Create Token"
- },
- {
- "type": "textInput",
- "label": "App Key",
- "value": "appKey",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g. zXvp6bWcSL3muCRuGrWyUA",
- "secret": true,
- "footerNote": "App Key from Settings > Project Details > App Key"
- },
- {
- "type": "checkbox",
- "label": "EU data center",
- "value": "dataCenter",
- "default": false,
- "footerNote": "Toggle on to send data to EU server"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/algolia/db_config.json b/data/destinations/algolia/db_config.json
deleted file mode 100644
index 9f14eef5e..000000000
--- a/data/destinations/algolia/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "ALGOLIA",
- "displayName": "Algolia",
- "config": {
- "cdkV2TestThreshold": 1,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "applicationId",
- "eventTypeSettings"
- ]
- },
- "secretKeys": [
- "apiKey",
- "applicationId"
- ]
- }
-}
diff --git a/data/destinations/algolia/metadata.json b/data/destinations/algolia/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/algolia/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/algolia/schema.json b/data/destinations/algolia/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/algolia/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/algolia/ui_config.json b/data/destinations/algolia/ui_config.json
deleted file mode 100644
index 39f770e4d..000000000
--- a/data/destinations/algolia/ui_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Application ID",
- "value": "applicationId",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. O2YAMMI15I",
- "secret": true
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Event Name to Event Type Mapping",
- "labelLeft": "Event Name",
- "labelRight": "Event Type",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "item clicked",
- "placeholderRight": "click",
- "value": "eventTypeSettings"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/am/db_config.json b/data/destinations/am/db_config.json
deleted file mode 100644
index cc01f3396..000000000
--- a/data/destinations/am/db_config.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{
- "name": "AM",
- "displayName": "Amplitude",
- "config": {
- "supportsVisualMapper": true,
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "groupTypeTrait",
- "groupValueTrait",
- "trackAllPages",
- "trackCategorizedPages",
- "trackNamedPages",
- "traitsToIncrement",
- "traitsToSetOnce",
- "traitsToAppend",
- "traitsToPrepend",
- "trackProductsOnce",
- "trackRevenuePerProduct",
- "preferAnonymousIdForDeviceId",
- "deviceIdFromUrlParam",
- "forceHttps",
- "trackGclid",
- "trackReferrer",
- "saveParamsReferrerOncePerSession",
- "trackUtmProperties",
- "unsetParamsReferrerOnNewSession",
- "batchEvents",
- "eventUploadPeriodMillis",
- "eventUploadThreshold",
- "versionName",
- "enableLocationListening",
- "useAdvertisingIdForDeviceId",
- "trackSessionEvents",
- "useIdfaAsDeviceId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "mapDeviceBrand"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "alias",
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "groupTypeTrait",
- "groupValueTrait",
- "trackAllPages",
- "trackCategorizedPages",
- "trackNamedPages",
- "traitsToIncrement",
- "traitsToSetOnce",
- "traitsToAppend",
- "traitsToPrepend",
- "trackProductsOnce",
- "trackRevenuePerProduct",
- "versionName",
- "apiSecret",
- "residencyServer",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "mapDeviceBrand"
- ],
- "web": [
- "useNativeSDK",
- "preferAnonymousIdForDeviceId",
- "deviceIdFromUrlParam",
- "forceHttps",
- "trackGclid",
- "trackReferrer",
- "saveParamsReferrerOncePerSession",
- "trackUtmProperties",
- "unsetParamsReferrerOnNewSession",
- "batchEvents",
- "eventUploadPeriodMillis",
- "eventUploadThreshold",
- "oneTrustCookieCategories"
- ],
- "android": [
- "eventUploadPeriodMillis",
- "eventUploadThreshold",
- "useNativeSDK",
- "enableLocationListening",
- "trackSessionEvents",
- "useAdvertisingIdForDeviceId"
- ],
- "ios": [
- "eventUploadPeriodMillis",
- "eventUploadThreshold",
- "useNativeSDK",
- "trackSessionEvents",
- "useIdfaAsDeviceId"
- ],
- "reactnative": [
- "eventUploadPeriodMillis",
- "eventUploadThreshold",
- "useNativeSDK",
- "enableLocationListening",
- "trackSessionEvents",
- "useAdvertisingIdForDeviceId",
- "useIdfaAsDeviceId"
- ],
- "flutter": [
- "eventUploadPeriodMillis",
- "eventUploadThreshold",
- "useNativeSDK",
- "enableLocationListening",
- "trackSessionEvents",
- "useAdvertisingIdForDeviceId",
- "useIdfaAsDeviceId"
- ]
- },
- "secretKeys": [
- "apiKey",
- "apiSecret"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/am/metadata.json b/data/destinations/am/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/am/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/am/schema.json b/data/destinations/am/schema.json
deleted file mode 100644
index 04a618a14..000000000
--- a/data/destinations/am/schema.json
+++ /dev/null
@@ -1,320 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "apiSecret": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "groupTypeTrait": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "groupValueTrait": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "trackAllPages": {
- "type": "boolean"
- },
- "trackCategorizedPages": {
- "type": "boolean"
- },
- "trackNamedPages": {
- "type": "boolean"
- },
- "trackProductsOnce": {
- "type": "boolean"
- },
- "trackRevenuePerProduct": {
- "type": "boolean"
- },
- "versionName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "residencyServer": {
- "type": "string",
- "pattern": "(^env[.].*)|^(standard|EU)$"
- },
- "traitsToIncrement": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "traits": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "traitsToSetOnce": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "traits": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "traitsToAppend": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "traits": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "traitsToPrepend": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "traits": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- },
- "android": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- }
- }
- },
- "preferAnonymousIdForDeviceId": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "deviceIdFromUrlParam": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "forceHttps": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "trackGclid": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "trackReferrer": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "saveParamsReferrerOncePerSession": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "trackUtmProperties": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "unsetParamsReferrerOnNewSession": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "batchEvents": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventUploadPeriodMillis": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "android": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "ios": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "reactnative": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- }
- }
- },
- "eventUploadThreshold": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "android": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "ios": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "reactnative": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- }
- }
- },
- "mapDeviceBrand": {
- "type": "boolean"
- },
- "enableLocationListening": {
- "type": "object",
- "properties": {
- "android": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- }
- }
- },
- "trackSessionEvents": {
- "type": "object",
- "properties": {
- "android": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- }
- }
- },
- "useAdvertisingIdForDeviceId": {
- "type": "object",
- "properties": {
- "android": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- }
- }
- },
- "useIdfaAsDeviceId": {
- "type": "object",
- "properties": {
- "ios": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/appcenter/db_config.json b/data/destinations/appcenter/db_config.json
deleted file mode 100644
index b58346ba7..000000000
--- a/data/destinations/appcenter/db_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "APPCENTER",
- "displayName": "App Center",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "appSecret",
- "eventPriorityMap",
- "transmissionLevel",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "reactnative",
- "cordova",
- "flutter"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "appSecret",
- "eventPriorityMap",
- "transmissionLevel",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "reactnative": [
- "useNativeSDK"
- ],
- "flutter": [
- "useNativeSDK"
- ],
- "cordova": [
- "useNativeSDK"
- ]
- },
- "secretKeys": [
- "appSecret"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/appcenter/metadata.json b/data/destinations/appcenter/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/appcenter/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/appcenter/schema.json b/data/destinations/appcenter/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/appcenter/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/appcenter/ui_config.json b/data/destinations/appcenter/ui_config.json
deleted file mode 100644
index 89f256dd5..000000000
--- a/data/destinations/appcenter/ui_config.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "AppCenter App Secret Key",
- "value": "appSecret",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AppCenter App Secret Key",
- "required": true,
- "placeholder": "e.g: \u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u20225c0d",
- "secret": true
- }
- ]
- },
- {
- "title": "Other Settings",
- "fields": [
- {
- "type": "dynamicSelectForm",
- "label": "Map your Events Name with Priority",
- "labelLeft": "Event Name",
- "labelRight": "Priority",
- "value": "eventPriorityMap",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "your event",
- "options": [
- {
- "name": "Normal",
- "value": "Normal"
- },
- {
- "name": "Critical",
- "value": "Critical"
- }
- ]
- },
- {
- "type": "textInput",
- "label": "Set the transmission interval in minutes",
- "value": "transmissionLevel",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Transmission Level",
- "required": false,
- "placeholder": "10"
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "defaultCheckbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/appcues/db_config.json b/data/destinations/appcues/db_config.json
deleted file mode 100644
index 2337cd9f6..000000000
--- a/data/destinations/appcues/db_config.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "APPCUES",
- "displayName": "Appcues",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "accountId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/appcues/metadata.json b/data/destinations/appcues/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/appcues/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/appcues/schema.json b/data/destinations/appcues/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/appcues/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/attentive_tag/db_config.json b/data/destinations/attentive_tag/db_config.json
deleted file mode 100644
index 0f9c7611d..000000000
--- a/data/destinations/attentive_tag/db_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "ATTENTIVE_TAG",
- "displayName": "Attentive Tag",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "signUpSourceId"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/attentive_tag/metadata.json b/data/destinations/attentive_tag/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/attentive_tag/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/attentive_tag/schema.json b/data/destinations/attentive_tag/schema.json
deleted file mode 100644
index 1dd88502c..000000000
--- a/data/destinations/attentive_tag/schema.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "signUpSourceId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/attentive_tag/ui_config.json b/data/destinations/attentive_tag/ui_config.json
deleted file mode 100644
index 08998d059..000000000
--- a/data/destinations/attentive_tag/ui_config.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g. saDbFeVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENpNUlZ",
- "secret": true,
- "footerNote": "Your API Key"
- },
- {
- "type": "textInput",
- "label": "Sign Up Source Id",
- "value": "signUpSourceId",
- "regex": "^[0-9]+$",
- "regexErrorMessage": "Invalid Sign Up Source Id",
- "required": false,
- "placeholder": "e.g: 123456",
- "secret": false,
- "footerNote": "Your Sign Up Source Id"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/attribution/db_config.json b/data/destinations/attribution/db_config.json
deleted file mode 100644
index f9746edd1..000000000
--- a/data/destinations/attribution/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "ATTRIBUTION",
- "displayName": "Attribution",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "warehouse",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "alias",
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "writeKey"
- ],
- "web": []
- },
- "secretKeys": [
- "writeKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/attribution/metadata.json b/data/destinations/attribution/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/attribution/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/attribution/schema.json b/data/destinations/attribution/schema.json
deleted file mode 100644
index 7b26cfd76..000000000
--- a/data/destinations/attribution/schema.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "writeKey"
- ],
- "properties": {
- "writeKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/attribution/ui_config.json b/data/destinations/attribution/ui_config.json
deleted file mode 100644
index 05800f1b2..000000000
--- a/data/destinations/attribution/ui_config.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Attribution Project Key",
- "value": "writeKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Attribution Project Key",
- "required": true,
- "placeholder": "e.g: AGzp7K9cBV"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/autopilot/db_config.json b/data/destinations/autopilot/db_config.json
deleted file mode 100644
index c0c094ce2..000000000
--- a/data/destinations/autopilot/db_config.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "AUTOPILOT",
- "displayName": "Autopilot",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "triggerId"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/autopilot/metadata.json b/data/destinations/autopilot/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/autopilot/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/autopilot/schema.json b/data/destinations/autopilot/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/autopilot/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/autopilot/ui_config.json b/data/destinations/autopilot/ui_config.json
deleted file mode 100644
index 86d499cdc..000000000
--- a/data/destinations/autopilot/ui_config.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g: 1d6583b196d34de28a3g19ahadde4b0z"
- },
- {
- "type": "textInput",
- "label": "Trigger Id",
- "value": "triggerId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Trigger Id",
- "required": true,
- "placeholder": "e.g: 00XX"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/azure_blob/db_config.json b/data/destinations/azure_blob/db_config.json
deleted file mode 100644
index 36e423b5f..000000000
--- a/data/destinations/azure_blob/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "AZURE_BLOB",
- "displayName": "Azure Blob Storage",
- "config": {
- "transformAt": "none",
- "transformAtV1": "none",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "containerName",
- "prefix",
- "accountName",
- "accountKey",
- "useSASTokens",
- "sasToken"
- ]
- },
- "secretKeys": [
- "accountKey",
- "sasToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_blob/metadata.json b/data/destinations/azure_blob/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/azure_blob/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_blob/schema.json b/data/destinations/azure_blob/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/azure_blob/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/azure_blob/ui_config.json b/data/destinations/azure_blob/ui_config.json
deleted file mode 100644
index 1882fa985..000000000
--- a/data/destinations/azure_blob/ui_config.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Azure Blob Storage Container Name",
- "value": "containerName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-blob-event-logs"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "textInput",
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "placeholder": "e.g: account-key",
- "secret": true
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/azure_datalake/db_config.json b/data/destinations/azure_datalake/db_config.json
deleted file mode 100644
index f4bcfc5da..000000000
--- a/data/destinations/azure_datalake/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "AZURE_DATALAKE",
- "displayName": "Azure Datalake",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "containerName",
- "prefix",
- "namespace",
- "accountName",
- "accountKey",
- "useSASTokens",
- "sasToken",
- "syncFrequency",
- "syncStartAt"
- ]
- },
- "secretKeys": [
- "accountKey",
- "sasToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_datalake/metadata.json b/data/destinations/azure_datalake/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/azure_datalake/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_datalake/schema.json b/data/destinations/azure_datalake/schema.json
deleted file mode 100644
index e5172afd2..000000000
--- a/data/destinations/azure_datalake/schema.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "containerName",
- "accountName"
- ],
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- }
- },
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "accountKey"
- ]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": [
- "useSASTokens",
- "sasToken"
- ]
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_datalake/ui_config.json b/data/destinations/azure_datalake/ui_config.json
deleted file mode 100644
index 1e5ab247c..000000000
--- a/data/destinations/azure_datalake/ui_config.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "Azure Blob Storage Container Name",
- "labelNote": "Container to store your event data",
- "value": "containerName",
- "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
- "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-event-logs",
- "footerNote": "Please make sure the container exists in your Azure Blob Storage"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "labelNote": "If configured, all data pushed by rudderstack will be at https://.blob.core.windows.net///",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "labelNote": "Schema name for the warehouse where the tables are created",
- "value": "namespace",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "regexErrorMessage": "Invalid Namespace",
- "required": false,
- "placeholder": "e.g: RUDDER_NAMESPACE",
- "footerNote": "All data for the destination would be pushed to https://.blob.core.windows.net///rudder-datalake/."
- },
- {
- "type": "textInput",
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/azure_event_hub/db_config.json b/data/destinations/azure_event_hub/db_config.json
deleted file mode 100644
index c50768e5a..000000000
--- a/data/destinations/azure_event_hub/db_config.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "AZURE_EVENT_HUB",
- "displayName": "Azure Event Hubs",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "bootstrapServer",
- "topic",
- "eventHubsConnectionString"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_event_hub/metadata.json b/data/destinations/azure_event_hub/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/azure_event_hub/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_event_hub/schema.json b/data/destinations/azure_event_hub/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/azure_event_hub/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/azure_event_hub/ui_config.json b/data/destinations/azure_event_hub/ui_config.json
deleted file mode 100644
index 1691dcde1..000000000
--- a/data/destinations/azure_event_hub/ui_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Bootstrap server",
- "value": "bootstrapServer",
- "regex": "^.*:[0-9]{1,5}$",
- "regexErrorMessage": "Invalid Bootstrap server",
- "required": true,
- "placeholder": "e.g: NAMESPACENAME.servicebus.windows.net:9093"
- },
- {
- "type": "textInput",
- "label": "Topic Name",
- "value": "topic",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Topic Name",
- "required": true,
- "placeholder": "e.g: test-topic"
- },
- {
- "type": "textInput",
- "label": "Event Hubs ConnectionString",
- "value": "eventHubsConnectionString",
- "regex": "^(.{0,300})$",
- "regexErrorMessage": "Invalid Event Hubs ConnectionString",
- "required": true,
- "placeholder": "e.g: Endpoint=sb://..."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/azure_synapse/db_config.json b/data/destinations/azure_synapse/db_config.json
deleted file mode 100644
index a0b91e032..000000000
--- a/data/destinations/azure_synapse/db_config.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "AZURE_SYNAPSE",
- "displayName": "Azure Synapse",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "host",
- "database",
- "user",
- "password",
- "port",
- "sslMode",
- "namespace",
- "bucketProvider",
- "bucketName",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "accountName",
- "accountKey",
- "useSASTokens",
- "sasToken",
- "credentials",
- "secretAccessKey",
- "useSSL",
- "containerName",
- "endPoint",
- "syncFrequency",
- "syncStartAt",
- "excludeWindow",
- "useRudderStorage"
- ]
- },
- "secretKeys": [
- "password",
- "accessKeyID",
- "accessKey",
- "accountKey",
- "sasToken",
- "secretAccessKey",
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_synapse/metadata.json b/data/destinations/azure_synapse/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/azure_synapse/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_synapse/schema.json b/data/destinations/azure_synapse/schema.json
deleted file mode 100644
index 13cffd737..000000000
--- a/data/destinations/azure_synapse/schema.json
+++ /dev/null
@@ -1,278 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "host",
- "database",
- "user",
- "password",
- "port",
- "sslMode",
- "syncFrequency",
- "useRudderStorage"
- ],
- "properties": {
- "host": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "database": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "user": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "port": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "sslMode": {
- "type": "string",
- "pattern": "^(disable|true|false)$"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": [
- "excludeWindowStartTime",
- "excludeWindowEndTime"
- ],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "useRudderStorage": {
- "type": "boolean",
- "default": false
- },
- "bucketProvider": {
- "type": "string",
- "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "useRudderStorage"
- ]
- },
- "then": {
- "required": [
- "bucketProvider"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "S3"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- },
- "required": [
- "bucketName",
- "accessKeyID",
- "accessKey"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "GCS"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": [
- "bucketName",
- "credentials"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "AZURE_BLOB"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "containerName",
- "accountName"
- ],
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "accountKey"
- ]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": [
- "useSASTokens",
- "sasToken"
- ]
- }
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "MINIO"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "endPoint": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "secretAccessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "useSSL": {
- "type": "boolean"
- }
- },
- "required": [
- "bucketName",
- "endPoint",
- "accessKeyID",
- "secretAccessKey",
- "useSSL"
- ]
- }
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/azure_synapse/ui_config.json b/data/destinations/azure_synapse/ui_config.json
deleted file mode 100644
index d11866654..000000000
--- a/data/destinations/azure_synapse/ui_config.json
+++ /dev/null
@@ -1,547 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid Host",
- "placeholder": "e.g: azure-synapse.mydomain.com",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "database",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Database",
- "placeholder": "e.g: rudderdb",
- "required": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid User",
- "placeholder": "e.g: rudder",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "placeholder": "e.g: rudder-password",
- "regex": ".*",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Port",
- "placeholder": "1433",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "labelNote": "Schema name for the warehouse where the tables are created",
- "value": "namespace",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "regexErrorMessage": "Invalid Namespace",
- "required": false,
- "placeholder": "e.g: rudder-schema",
- "footerNote": "Default will be the source name"
- },
- {
- "type": "singleSelect",
- "label": "SSL Mode",
- "value": "sslMode",
- "options": [
- {
- "name": "disable",
- "value": "disable"
- },
- {
- "name": "true",
- "value": "true"
- },
- {
- "name": "false",
- "value": "false"
- }
- ],
- "defaultOption": {
- "name": "disable",
- "value": "disable"
- },
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- },
- {
- "type": "timeRangePicker",
- "label": "Exclude window (Optional)",
- "value": "excludeWindow",
- "startTime": {
- "label": "start time",
- "value": "excludeWindowStartTime"
- },
- "endTime": {
- "label": "end time",
- "value": "excludeWindowEndTime"
- },
- "options": {
- "omitSeconds": true,
- "minuteStep": 1
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- },
- {
- "title": "Object Storage Configuration",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use RudderStack managed object storage",
- "value": "useRudderStorage",
- "default": false,
- "footerNote": "Note: Only available for RudderStack managed data planes"
- },
- {
- "type": "singleSelect",
- "label": "Choose your Storage Provider",
- "value": "bucketProvider",
- "options": [
- {
- "name": "S3",
- "value": "S3"
- },
- {
- "name": "GCS",
- "value": "GCS"
- },
- {
- "name": "AZURE_BLOB",
- "value": "AZURE_BLOB"
- },
- {
- "name": "MINIO",
- "value": "MINIO"
- }
- ],
- "defaultOption": {
- "name": "MINIO",
- "value": "MINIO"
- },
- "required": true,
- "preRequisiteField": {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging S3 Storage Bucket Name",
- "labelNote": "S3 Bucket to store data before loading into AzureSynapse",
- "value": "bucketName",
- "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
- "placeholder": "e.g: s3-event-logs",
- "required": true,
- "footerNote": "Please make sure the bucket exists in your S3"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging GCS Object Storage Bucket Name",
- "labelNote": "GCS Bucket to store data before loading into AzureSynapse",
- "value": "bucketName",
- "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
- "placeholder": "e.g: gcs-event-logs",
- "required": true,
- "footerNote": "Please make sure the bucket exists in your GCS"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging Azure Blob Storage Container Name",
- "labelNote": "Container to store data before loading into AzureSynapse",
- "value": "containerName",
- "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
- "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-event-logs",
- "footerNote": "Please make sure the container exists in your Azure Blob Storage"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging MINIO Storage Bucket Name",
- "labelNote": "MINIO Bucket to store data before loading into AzureSynapse",
- "value": "bucketName",
- "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: minio-event-logs",
- "footerNote": "Please make sure the bucket exists in your MINIO"
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": true
- }
- ],
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MinIO Endpoint",
- "value": "endPoint",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Endpoint",
- "required": true,
- "placeholder": "e.g: play.min.io:9000"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MINIO Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MINIO Secret Access Key",
- "value": "secretAccessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key"
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use SSL for connection",
- "value": "useSSL",
- "default": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/bingads/db_config.json b/data/destinations/bingads/db_config.json
deleted file mode 100644
index 720d5a29a..000000000
--- a/data/destinations/bingads/db_config.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "BINGADS",
- "displayName": "Bing Ads",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [
- "tagID",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "tagID",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "tagID"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bingads/metadata.json b/data/destinations/bingads/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/bingads/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bingads/schema.json b/data/destinations/bingads/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/bingads/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/blueshift/db_config.json b/data/destinations/blueshift/db_config.json
deleted file mode 100644
index 6b42bfc75..000000000
--- a/data/destinations/blueshift/db_config.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "BLUESHIFT",
- "displayName": "Blueshift",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "cloud",
- "mobile"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "eventApiKey",
- "usersApiKey",
- "dataCenter"
- ]
- },
- "secretKeys": [
- "eventApiKey",
- "usersApiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/blueshift/metadata.json b/data/destinations/blueshift/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/blueshift/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/blueshift/schema.json b/data/destinations/blueshift/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/blueshift/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/blueshift/ui_config.json b/data/destinations/blueshift/ui_config.json
deleted file mode 100644
index 70f992545..000000000
--- a/data/destinations/blueshift/ui_config.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Event API Key",
- "value": "eventApiKey",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g. b4a29aba5e75dkjc8a18acd920ec1e2e",
- "secret": true,
- "footerNote": "Event API Key from Account Settings > API Keys"
- },
- {
- "type": "textInput",
- "label": "Users API Key",
- "value": "usersApiKey",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g. lko89aba5e75d99c8a18acd920ec1e2e",
- "secret": true,
- "footerNote": "Users API Key from Account Settings > API Keys"
- },
- {
- "type": "singleSelect",
- "label": "Data Center",
- "value": "dataCenter",
- "mode": "single",
- "options": [
- {
- "name": "Standard",
- "value": "standard"
- },
- {
- "name": "EU",
- "value": "eu"
- }
- ],
- "defaultOption": {
- "name": "Standard",
- "value": "standard"
- },
- "footerNote": "Select your Blueshift Data Center"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/bq/db_config.json b/data/destinations/bq/db_config.json
deleted file mode 100644
index d0f48852e..000000000
--- a/data/destinations/bq/db_config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "BQ",
- "displayName": "BigQuery",
- "category": "warehouse",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "project",
- "location",
- "bucketName",
- "credentials",
- "prefix",
- "namespace",
- "syncFrequency",
- "syncStartAt",
- "excludeWindow",
- "jsonPaths"
- ]
- },
- "secretKeys": [
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bq/metadata.json b/data/destinations/bq/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/bq/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bq/schema.json b/data/destinations/bq/schema.json
deleted file mode 100644
index 654ea931d..000000000
--- a/data/destinations/bq/schema.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "project",
- "bucketName",
- "credentials",
- "syncFrequency"
- ],
- "properties": {
- "project": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "location": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": [
- "excludeWindowStartTime",
- "excludeWindowEndTime"
- ],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "jsonPaths": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- }
- },
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bqstream/db_config.json b/data/destinations/bqstream/db_config.json
deleted file mode 100644
index a298e494e..000000000
--- a/data/destinations/bqstream/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "BQSTREAM",
- "displayName": "BigQuery Stream",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedMessageTypes": [
- "track"
- ],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "destConfig": {
- "defaultConfig": [
- "datasetId",
- "tableId",
- "projectId",
- "credentials",
- "insertId"
- ]
- },
- "secretKeys": [
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bqstream/metadata.json b/data/destinations/bqstream/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/bqstream/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bqstream/schema.json b/data/destinations/bqstream/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/bqstream/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/bqstream/ui_config.json b/data/destinations/bqstream/ui_config.json
deleted file mode 100644
index 91b3611e6..000000000
--- a/data/destinations/bqstream/ui_config.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Project Id",
- "value": "projectId",
- "required": true,
- "placeholder": "my-project-id"
- },
- {
- "type": "textInput",
- "label": "Dataset Id",
- "value": "datasetId",
- "required": true,
- "placeholder": "my-dataset-id"
- },
- {
- "type": "textInput",
- "label": "Table Id",
- "value": "tableId",
- "required": true,
- "placeholder": "my-table-id"
- },
- {
- "type": "textInput",
- "label": "Insert Id",
- "labelNote": "Map a column from your payload to enable best effort de-duplication by Google",
- "value": "insertId",
- "required": false,
- "placeholder": "mapped-column-name"
- },
- {
- "type": "textareaInput",
- "subType": "JSON",
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your BigQuery database",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'BigQuery User'",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/branch/db_config.json b/data/destinations/branch/db_config.json
deleted file mode 100644
index 2587ef9ab..000000000
--- a/data/destinations/branch/db_config.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "BRANCH",
- "displayName": "Branch Metrics",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "branchKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "branchKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/branch/metadata.json b/data/destinations/branch/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/branch/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/branch/schema.json b/data/destinations/branch/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/branch/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/branch/ui_config.json b/data/destinations/branch/ui_config.json
deleted file mode 100644
index 7b75240dc..000000000
--- a/data/destinations/branch/ui_config.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Branch Key",
- "value": "branchKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Branch Key",
- "required": true,
- "placeholder": "e.g: key_live_mfMJCn7WLNeXte2aZIDOeobdrvmbZpgD"
- }
- ]
- },
- {
- "title": "2. Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": false
- }
- ]
- },
- {
- "title": "3. Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/braze/db_config.json b/data/destinations/braze/db_config.json
deleted file mode 100644
index 0bac3783d..000000000
--- a/data/destinations/braze/db_config.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "name": "BRAZE",
- "displayName": "Braze",
- "config": {
- "isAudienceSupported": true,
- "supportsVisualMapper": true,
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "appKey",
- "dataCenter",
- "trackAnonymousUser",
- "enableSubscriptionGroupInGroupCall",
- "enableLoggingToConsole",
- "enableNestedArrayOperations",
- "supportDedup",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "appKey",
- "dataCenter",
- "restApiKey",
- "trackAnonymousUser",
- "enableSubscriptionGroupInGroupCall",
- "enableNestedArrayOperations",
- "blacklistedEvents",
- "trackAnonymousUser",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK",
- "supportDedup"
- ],
- "ios": [
- "useNativeSDK",
- "supportDedup"
- ],
- "reactnative": [
- "useNativeSDK"
- ],
- "flutter": [
- "useNativeSDK"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories",
- "supportDedup"
- ]
- },
- "secretKeys": [
- "restApiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/braze/metadata.json b/data/destinations/braze/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/braze/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/braze/schema.json b/data/destinations/braze/schema.json
deleted file mode 100644
index b7c89f021..000000000
--- a/data/destinations/braze/schema.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "appKey",
- "restApiKey",
- "dataCenter"
- ],
- "type": "object",
- "properties": {
- "appKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "restApiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "dataCenter": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "trackAnonymousUser": {
- "type": "boolean"
- },
- "enableSubscriptionGroupInGroupCall": {
- "type": "boolean"
- },
- "enableLoggingToConsole": {
- "type": "boolean"
- },
- "enableNestedArrayOperations": {
- "type": "boolean"
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "android": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- },
- "reactnative": {
- "type": "boolean"
- },
- "web": {
- "type": "boolean"
- }
- }
- },
- "supportDedup": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- },
- "android": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,300})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/data/destinations/bugsnag/db_config.json b/data/destinations/bugsnag/db_config.json
deleted file mode 100644
index db4b57609..000000000
--- a/data/destinations/bugsnag/db_config.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "BUGSNAG",
- "displayName": "Bugsnag",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "releaseStage",
- "ssl",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "web": [
- "useNativeSDK",
- "releaseStage",
- "ssl",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bugsnag/metadata.json b/data/destinations/bugsnag/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/bugsnag/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/bugsnag/schema.json b/data/destinations/bugsnag/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/bugsnag/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/campaign_manager/metadata.json b/data/destinations/campaign_manager/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/campaign_manager/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/campaign_manager/schema.json b/data/destinations/campaign_manager/schema.json
deleted file mode 100644
index 7c65e2b4e..000000000
--- a/data/destinations/campaign_manager/schema.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "profileId"
- ],
- "properties": {
- "profileId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,50})$"
- },
- "limitAdTracking": {
- "type": "boolean"
- },
- "childDirectedTreatment": {
- "type": "boolean"
- },
- "nonPersonalizedAd": {
- "type": "boolean"
- },
- "treatmentForUnderage": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/campaign_manager/ui_config.json b/data/destinations/campaign_manager/ui_config.json
deleted file mode 100644
index 664ac6f65..000000000
--- a/data/destinations/campaign_manager/ui_config.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Profile ID",
- "value": "profileId",
- "regex": "^(.{1,50})$",
- "regexErrorMessage": "Length of Profile ID must be below 50 characters.",
- "required": true,
- "secret": false,
- "placeholder": "e.g: 641234",
- "footerNote": "User profile ID associated with request."
- },
- {
- "type": "checkbox",
- "label": "Limit ad tracking",
- "value": "limitAdTracking",
- "required": false,
- "default": false,
- "footerNote": "When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing."
- },
- {
- "type": "checkbox",
- "label": "Child directed treatment",
- "value": "childDirectedTreatment",
- "required": false,
- "default": false,
- "footerNote": "Whether this particular request may come from a user under the age of 13, under COPPA compliance."
- },
- {
- "type": "checkbox",
- "label": "Non personalized ad",
- "value": "nonPersonalizedAd",
- "required": false,
- "default": false,
- "footerNote": "Whether the conversion was for a non personalized ad."
- },
- {
- "type": "checkbox",
- "label": "Treatment for underage",
- "value": "treatmentForUnderage",
- "required": false,
- "default": false,
- "footerNote": "Whether this particular request may come from a user under the age of 16 (may differ by country), under compliance with the European Union's General Data Protection Regulation (GDPR)."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/candu/db_config.json b/data/destinations/candu/db_config.json
deleted file mode 100644
index 20d5d5583..000000000
--- a/data/destinations/candu/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "CANDU",
- "displayName": "Candu",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/candu/metadata.json b/data/destinations/candu/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/candu/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/candu/schema.json b/data/destinations/candu/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/candu/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/candu/ui_config.json b/data/destinations/candu/ui_config.json
deleted file mode 100644
index 9253e7aff..000000000
--- a/data/destinations/candu/ui_config.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: FXLkULEhGJyvmZ4",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/canny/db_config.json b/data/destinations/canny/db_config.json
deleted file mode 100644
index a61875a4d..000000000
--- a/data/destinations/canny/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "CANNY",
- "displayName": "Canny",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "eventsToEvents"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "eventsToEvents"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/canny/metadata.json b/data/destinations/canny/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/canny/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/canny/schema.json b/data/destinations/canny/schema.json
deleted file mode 100644
index 6b1acb8ca..000000000
--- a/data/destinations/canny/schema.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "eventsToEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/canny/ui_config.json b/data/destinations/canny/ui_config.json
deleted file mode 100644
index cdbe42f61..000000000
--- a/data/destinations/canny/ui_config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "API Key should be less than 100 characters",
- "required": true,
- "placeholder": "e.g. 4ac23-drfgbef-hb233j-9034-7dgfeb6y",
- "secret": true
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "dynamicSelectForm",
- "label": "Mapping to trigger Canny Events for the respective Event",
- "labelLeft": "Event Name",
- "labelRight": "Canny Events",
- "value": "eventsToEvents",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g: Submit",
- "options": [
- {
- "name": "Create Post",
- "value": "createPost"
- },
- {
- "name": "Create Vote",
- "value": "createVote"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/chartbeat/db_config.json b/data/destinations/chartbeat/db_config.json
deleted file mode 100644
index 528ba0db1..000000000
--- a/data/destinations/chartbeat/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "CHARTBEAT",
- "displayName": "Chartbeat",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "domain",
- "uid",
- "sendNameAndCategoryAsTitle",
- "video",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "domain",
- "uid",
- "sendNameAndCategoryAsTitle",
- "video",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/chartbeat/metadata.json b/data/destinations/chartbeat/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/chartbeat/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/chartbeat/schema.json b/data/destinations/chartbeat/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/chartbeat/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/clevertap/db_config.json b/data/destinations/clevertap/db_config.json
deleted file mode 100644
index 9efeb06ec..000000000
--- a/data/destinations/clevertap/db_config.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "name": "CLEVERTAP",
- "displayName": "CleverTap",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "accountId",
- "accountToken",
- "passcode",
- "region",
- "trackAnonymous",
- "enableObjectIdMapping",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "accountToken",
- "passcode",
- "region",
- "trackAnonymous",
- "enableObjectIdMapping",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "reactnative": [
- "useNativeSDK"
- ]
- },
- "secretKeys": [
- "passcode"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clevertap/metadata.json b/data/destinations/clevertap/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/clevertap/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clevertap/schema.json b/data/destinations/clevertap/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/clevertap/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/clickhouse/db_config.json b/data/destinations/clickhouse/db_config.json
deleted file mode 100644
index ff9cfce38..000000000
--- a/data/destinations/clickhouse/db_config.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "CLICKHOUSE",
- "displayName": "ClickHouse",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "excludeKeys": [],
- "includeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "host",
- "database",
- "cluster",
- "user",
- "password",
- "port",
- "bucketName",
- "bucketProvider",
- "containerName",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "accountKey",
- "useSASTokens",
- "sasToken",
- "accountName",
- "credentials",
- "secretAccessKey",
- "useSSL",
- "endPoint",
- "prefix",
- "syncFrequency",
- "syncStartAt",
- "enableSSE",
- "secure",
- "skipVerify",
- "caCertificate",
- "excludeWindow",
- "useRudderStorage"
- ]
- },
- "secretKeys": [
- "password",
- "accessKeyID",
- "accessKey",
- "accountKey",
- "sasToken",
- "secretAccessKey",
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clickhouse/metadata.json b/data/destinations/clickhouse/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/clickhouse/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clickhouse/schema.json b/data/destinations/clickhouse/schema.json
deleted file mode 100644
index f1e901b16..000000000
--- a/data/destinations/clickhouse/schema.json
+++ /dev/null
@@ -1,301 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "host",
- "port",
- "database",
- "user",
- "secure",
- "syncFrequency",
- "useRudderStorage"
- ],
- "properties": {
- "host": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "port": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "database": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "cluster": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "user": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "secure": {
- "type": "boolean",
- "default": false
- },
- "skipVerify": {
- "type": "boolean"
- },
- "caCertificate": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": [
- "excludeWindowStartTime",
- "excludeWindowEndTime"
- ],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "useRudderStorage": {
- "type": "boolean",
- "default": false
- },
- "bucketProvider": {
- "type": "string",
- "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "secure": {
- "const": true
- }
- },
- "required": [
- "secure"
- ]
- },
- "then": {
- "required": [
- "skipVerify"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "useRudderStorage"
- ]
- },
- "then": {
- "required": [
- "bucketProvider"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "S3"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- },
- "required": [
- "bucketName",
- "accessKeyID",
- "accessKey"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "GCS"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": [
- "bucketName",
- "credentials"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "AZURE_BLOB"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "containerName",
- "accountName"
- ],
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "accountKey"
- ]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": [
- "useSASTokens",
- "sasToken"
- ]
- }
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "MINIO"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "endPoint": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "secretAccessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "useSSL": {
- "type": "boolean"
- }
- },
- "required": [
- "bucketName",
- "endPoint",
- "accessKeyID",
- "secretAccessKey",
- "useSSL"
- ]
- }
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clickhouse/ui_config.json b/data/destinations/clickhouse/ui_config.json
deleted file mode 100644
index 1aad03815..000000000
--- a/data/destinations/clickhouse/ui_config.json
+++ /dev/null
@@ -1,552 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$$",
- "regexErrorMessage": "Invalid Host",
- "placeholder": "e.g: clickhouse.mydomain.com",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Port",
- "placeholder": "9000",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "database",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Database",
- "placeholder": "e.g: default",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Cluster",
- "value": "cluster",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Cluster",
- "placeholder": "e.g: cluster_name",
- "required": false
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid User",
- "placeholder": "e.g: default",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "regex": ".*",
- "placeholder": "e.g: rudder-pasword",
- "required": false,
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Secure",
- "value": "secure",
- "default": false
- },
- {
- "type": "checkbox",
- "preRequisiteField": {
- "name": "secure",
- "selectedValue": true
- },
- "label": "Skip verify",
- "value": "skipVerify",
- "default": false,
- "footerNote": "If you are using self signed certificates set this field to true"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": {
- "name": "secure",
- "selectedValue": true
- },
- "label": "CA certificate",
- "value": "caCertificate",
- "regex": ".*",
- "required": false,
- "placeholder": "CA Certificate"
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- },
- {
- "type": "timeRangePicker",
- "label": "Exclude window (Optional)",
- "value": "excludeWindow",
- "startTime": {
- "label": "start time",
- "value": "excludeWindowStartTime"
- },
- "endTime": {
- "label": "end time",
- "value": "excludeWindowEndTime"
- },
- "options": {
- "omitSeconds": true,
- "minuteStep": 1
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- },
- {
- "title": "Object Storage Configuration",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use RudderStack managed object storage",
- "value": "useRudderStorage",
- "default": false,
- "footerNote": "Note: Only available for RudderStack managed data planes"
- },
- {
- "type": "singleSelect",
- "label": "Choose your Storage Provider",
- "value": "bucketProvider",
- "options": [
- {
- "name": "S3",
- "value": "S3"
- },
- {
- "name": "GCS",
- "value": "GCS"
- },
- {
- "name": "AZURE_BLOB",
- "value": "AZURE_BLOB"
- },
- {
- "name": "MINIO",
- "value": "MINIO"
- }
- ],
- "defaultOption": {
- "name": "S3",
- "value": "S3"
- },
- "required": true,
- "preRequisiteField": {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging S3 Storage Bucket Name",
- "labelNote": "S3 Bucket to store data before loading into ClickHouse",
- "value": "bucketName",
- "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: s3-event-logs",
- "footerNote": "Please make sure the bucket exists in your S3"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging GCS Object Storage Bucket Name",
- "labelNote": "GCS Bucket to store data before loading into ClickHouse",
- "value": "bucketName",
- "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: gcs-event-logs",
- "footerNote": "Please make sure the bucket exists in your GCS"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging Azure Blob Storage Container Name",
- "labelNote": "Container to store data before loading into ClickHouse",
- "value": "containerName",
- "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
- "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-event-logs",
- "footerNote": "Please make sure the container exists in your Azure Blob Storage"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging MINIO Storage Bucket Name",
- "labelNote": "MINIO Bucket to store data before loading into ClickHouse",
- "value": "bucketName",
- "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: minio-event-logs",
- "footerNote": "Please make sure the bucket exists in your MINIO"
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": true
- }
- ],
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "regexErrorMessage": "Invalid Credentials",
- "required": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MinIO Endpoint",
- "value": "endPoint",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Endpoint",
- "required": true,
- "placeholder": "e.g: play.min.io:9000"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MINIO Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MINIO Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MINIO Secret Access Key",
- "value": "secretAccessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MINIO Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key"
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use SSL for connection",
- "value": "useSSL",
- "default": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/clickup/db_config.json b/data/destinations/clickup/db_config.json
deleted file mode 100644
index 4eb465111..000000000
--- a/data/destinations/clickup/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "CLICKUP",
- "displayName": "ClickUp",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiToken",
- "listId",
- "keyToCustomFieldName",
- "whitelistedEvents"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiToken",
- "listId",
- "keyToCustomFieldName",
- "whitelistedEvents"
- ]
- },
- "secretKeys": [
- "apiToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clickup/metadata.json b/data/destinations/clickup/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/clickup/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clickup/schema.json b/data/destinations/clickup/schema.json
deleted file mode 100644
index 676391a1a..000000000
--- a/data/destinations/clickup/schema.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiToken",
- "listId"
- ],
- "properties": {
- "apiToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "listId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "keyToCustomFieldName": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/clickup/ui_config.json b/data/destinations/clickup/ui_config.json
deleted file mode 100644
index 70cb9a9ea..000000000
--- a/data/destinations/clickup/ui_config.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiToken",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Token",
- "required": true,
- "placeholder": "e.g. pk_880343042_1W64ZBPLP71H5YAYAUEJHSRL",
- "secret": true,
- "footerNote": "Your API Token"
- },
- {
- "type": "textInput",
- "label": "List ID",
- "value": "listId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid List ID",
- "required": true,
- "placeholder": "e.g. 175496000",
- "secret": false,
- "footerNote": "Default List To Create New Task"
- }
- ]
- },
- {
- "title": "Custom Fields",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Mapping to add custom fields while creating a task",
- "value": "keyToCustomFieldName",
- "required": false,
- "labelRight": "ClickUp Custom Field Name",
- "labelLeft": "Rudder Payload Property",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: abc",
- "placeholderRight": "e.g: Industry",
- "footerNote": "Map Rudder Properties to ClickUp Custom Fields. Here, properties will be fetched from properties object(message.properties). You can provide multiple Custom Fields of different Lists. Custom field name must be unique within a list to create a task successfully."
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "footerNote": "Events not included in the Allowlist will be discarded.",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/confluent_cloud/db_config.json b/data/destinations/confluent_cloud/db_config.json
deleted file mode 100644
index 305983f64..000000000
--- a/data/destinations/confluent_cloud/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "CONFLUENT_CLOUD",
- "displayName": "Confluent Cloud",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "bootstrapServer",
- "topic",
- "apiKey",
- "apiSecret"
- ]
- },
- "secretKeys": [
- "apiSecret"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/confluent_cloud/metadata.json b/data/destinations/confluent_cloud/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/confluent_cloud/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/confluent_cloud/schema.json b/data/destinations/confluent_cloud/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/confluent_cloud/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/confluent_cloud/ui_config.json b/data/destinations/confluent_cloud/ui_config.json
deleted file mode 100644
index b4919e58b..000000000
--- a/data/destinations/confluent_cloud/ui_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Bootstrap server",
- "value": "bootstrapServer",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Bootstrap server",
- "required": true,
- "placeholder": "e.g: test.region.provider.confluent.cloud:9092"
- },
- {
- "type": "textInput",
- "label": "Topic Name",
- "value": "topic",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Topic Name",
- "required": true,
- "placeholder": "e.g: test-topic"
- },
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "PHGHQ3SPPQXAX9GC"
- },
- {
- "type": "textInput",
- "label": "API Secret",
- "value": "apiSecret",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Secret",
- "required": true,
- "placeholder": "xN9LCvHf5gX6lcifpDQPH7Hjx8RgQjO2PCqkZqAy//TAYQXYd4YxXWsxCtMKDmVm",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/convertflow/db_config.json b/data/destinations/convertflow/db_config.json
deleted file mode 100644
index 043e6f573..000000000
--- a/data/destinations/convertflow/db_config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "CONVERTFLOW",
- "displayName": "Convertflow",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "websiteId",
- "toggleToSendData",
- "eventsList",
- "eventsMappping",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "websiteId",
- "toggleToSendData",
- "eventsList",
- "eventsMappping",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "websiteId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/convertflow/metadata.json b/data/destinations/convertflow/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/convertflow/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/convertflow/schema.json b/data/destinations/convertflow/schema.json
deleted file mode 100644
index cbeccbc03..000000000
--- a/data/destinations/convertflow/schema.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "websiteId"
- ],
- "properties": {
- "websiteId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,10})$"
- },
- "toggleToSendData": {
- "type": "boolean"
- },
- "eventsList": {
- "type": "string",
- "pattern": "^(cfReady|cfView|cfConversion|cfCompletion|cfAddToCart|cfSubmit|cfClose)$"
- },
- "eventsMappping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/criteo/db_config.json b/data/destinations/criteo/db_config.json
deleted file mode 100644
index 90674b6e4..000000000
--- a/data/destinations/criteo/db_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "CRITEO",
- "displayName": "Criteo",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "accountId",
- "homePageUrl",
- "hashMethod",
- "fieldMapping",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "eventsToStandard"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "homePageUrl",
- "hashMethod",
- "fieldMapping",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "eventsToStandard"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "accountId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/criteo/metadata.json b/data/destinations/criteo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/criteo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/criteo/schema.json b/data/destinations/criteo/schema.json
deleted file mode 100644
index b57d76a57..000000000
--- a/data/destinations/criteo/schema.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "accountId"
- ],
- "type": "object",
- "properties": {
- "accountId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[1-9]+$"
- },
- "homePageUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "hashMethod": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "fieldMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "eventsToStandard": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/custify/db_config.json b/data/destinations/custify/db_config.json
deleted file mode 100644
index 90e7609ed..000000000
--- a/data/destinations/custify/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "CUSTIFY",
- "displayName": "Custify",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "sendAnonymousId"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "group",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "sendAnonymousId"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/custify/metadata.json b/data/destinations/custify/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/custify/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/custify/schema.json b/data/destinations/custify/schema.json
deleted file mode 100644
index e3f0de4ef..000000000
--- a/data/destinations/custify/schema.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,61})$"
- },
- "sendAnonymousId": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/custify/ui_config.json b/data/destinations/custify/ui_config.json
deleted file mode 100644
index d12c9a99d..000000000
--- a/data/destinations/custify/ui_config.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{0,61})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g: Tudc...5G4z"
- },
- {
- "type": "checkbox",
- "label": "Fall back to anonymousId if userId is not present",
- "value": "sendAnonymousId",
- "default": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/customerio/db_config.json b/data/destinations/customerio/db_config.json
deleted file mode 100644
index bcc2bffe3..000000000
--- a/data/destinations/customerio/db_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "CUSTOMERIO",
- "displayName": "Customer IO",
- "config": {
- "supportsVisualMapper": true,
- "isAudienceSupported": true,
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "siteID",
- "datacenterEU",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "siteID",
- "datacenterEU",
- "deviceTokenEventName",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/customerio/metadata.json b/data/destinations/customerio/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/customerio/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/customerio/schema.json b/data/destinations/customerio/schema.json
deleted file mode 100644
index dd619330c..000000000
--- a/data/destinations/customerio/schema.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "siteID",
- "apiKey"
- ],
- "properties": {
- "siteID": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "deviceTokenEventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "datacenterEU": {
- "type": "boolean"
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/dcm_floodlight/db_config.json b/data/destinations/dcm_floodlight/db_config.json
deleted file mode 100644
index fd2c1ce31..000000000
--- a/data/destinations/dcm_floodlight/db_config.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "name": "DCM_FLOODLIGHT",
- "displayName": "DCM Floodlight",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [
- "advertiserId",
- "activityTag",
- "groupTag",
- "conversionEvents",
- "conversionLinker",
- "allowAdPersonalizationSignals",
- "tagFormat",
- "doubleclickId",
- "googleNetworkId",
- "eventFilteringOption",
- "whitelistedEvents",
- "blacklistedEvents",
- "oneTrustCookieCategories"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse",
- "web"
- ],
- "supportedMessageTypes": [
- "track",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "advertiserId",
- "activityTag",
- "groupTag",
- "conversionEvents",
- "eventFilteringOption",
- "whitelistedEvents",
- "blacklistedEvents"
- ],
- "web": [
- "useNativeSDK",
- "conversionLinker",
- "allowAdPersonalizationSignals",
- "tagFormat",
- "doubleclickId",
- "googleNetworkId",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "advertiserId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/dcm_floodlight/metadata.json b/data/destinations/dcm_floodlight/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/dcm_floodlight/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/dcm_floodlight/schema.json b/data/destinations/dcm_floodlight/schema.json
deleted file mode 100644
index 4bc791e08..000000000
--- a/data/destinations/dcm_floodlight/schema.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": ["advertiserId"],
- "properties": {
- "advertiserId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- },
- "activityTag": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "groupTag": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "conversionEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "floodlightActivityTag": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "floodlightGroupTag": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "salesTag": {
- "type": "boolean"
- },
- "customVariables": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
- }
- }
- }
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "tagFormat": {
- "type": "string",
- "pattern": "(^env[.].+)|^(globalSiteTag|iframeTag)$"
- },
- "conversionLinker": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "allowAdPersonalizationSignals": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "doubleclickId": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "googleNetworkId": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/delighted/db_config.json b/data/destinations/delighted/db_config.json
deleted file mode 100644
index 790e17d44..000000000
--- a/data/destinations/delighted/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "DELIGHTED",
- "displayName": "Delighted",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "alias",
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "channel",
- "delay",
- "eventNamesSettings"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/delighted/metadata.json b/data/destinations/delighted/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/delighted/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/delighted/schema.json b/data/destinations/delighted/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/delighted/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/delighted/ui_config.json b/data/destinations/delighted/ui_config.json
deleted file mode 100644
index 97c58bb83..000000000
--- a/data/destinations/delighted/ui_config.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
- "secret": true,
- "footerNote": "Your API Key"
- },
- {
- "type": "singleSelect",
- "label": "Channel",
- "value": "channel",
- "required": true,
- "placeholder": "Email",
- "options": [
- {
- "name": "Email",
- "value": "email"
- },
- {
- "name": "SMS",
- "value": "sms"
- }
- ],
- "defaultOption": {
- "name": "Email",
- "value": "email"
- }
- },
- {
- "type": "textInput",
- "label": "Delay",
- "value": "delay",
- "required": false,
- "placeholder": "e.g. 60",
- "default": "0",
- "footerNote": "The amount of seconds to wait before sending the survey email."
- }
- ]
- },
- {
- "title": "Event Names",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "eventNamesSettings",
- "customFields": [
- {
- "type": "textInput",
- "label": "Event",
- "value": "event",
- "required": false,
- "placeholder": "e.g: Product Reviewed"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/deltalake/db_config.json b/data/destinations/deltalake/db_config.json
deleted file mode 100644
index dacd60f05..000000000
--- a/data/destinations/deltalake/db_config.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "DELTALAKE",
- "displayName": "Databricks (Delta Lake)",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "host",
- "port",
- "path",
- "token",
- "namespace",
- "bucketProvider",
- "bucketName",
- "containerName",
- "prefix",
- "useSTSTokens",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "enableSSE",
- "accountName",
- "accountKey",
- "useSASTokens",
- "sasToken",
- "credentials",
- "syncFrequency",
- "syncStartAt",
- "excludeWindow",
- "enableExternalLocation",
- "externalLocation"
- ]
- },
- "secretKeys": [
- "accessKeyID",
- "accessKey",
- "accountName",
- "accountKey",
- "sasToken",
- "credentials",
- "token"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/deltalake/metadata.json b/data/destinations/deltalake/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/deltalake/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/deltalake/schema.json b/data/destinations/deltalake/schema.json
deleted file mode 100644
index cbe4ad6f3..000000000
--- a/data/destinations/deltalake/schema.json
+++ /dev/null
@@ -1,248 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "host",
- "port",
- "path",
- "token",
- "syncFrequency",
- "bucketProvider"
- ],
- "properties": {
- "host": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "port": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "path": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "token": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": [
- "excludeWindowStartTime",
- "excludeWindowEndTime"
- ],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "prefix": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "bucketProvider": {
- "type": "string",
- "pattern": "^(S3|GCS|AZURE_BLOB)$"
- },
- "enableExternalLocation": {
- "type": "boolean",
- "default": false
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "enableExternalLocation": {
- "const": "true"
- }
- },
- "required": [
- "enableExternalLocation"
- ]
- },
- "then": {
- "properties": {
- "externalLocation": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- }
- },
- "required": [
- "externalLocation"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "S3"
- }
- },
- "required": [
- "bucketProvider"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "enableSSE": {
- "type": "boolean"
- },
- "useSTSTokens": {
- "type": "boolean"
- }
- },
- "required": [
- "bucketName",
- "enableSSE",
- "useSTSTokens"
- ]
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "useSTSTokens": {
- "const": true
- }
- },
- "required": [
- "useSTSTokens"
- ]
- },
- "then": {
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- }
- },
- "required": [
- "accessKeyID",
- "accessKey"
- ]
- }
- }
- ]
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "GCS"
- }
- },
- "required": [
- "bucketProvider"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!goog)(?!.*google.*)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": [
- "bucketName",
- "credentials"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "AZURE_BLOB"
- }
- },
- "required": [
- "bucketProvider"
- ]
- },
- "then": {
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].*)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{1,100})$"
- }
- },
- "required": [
- "containerName",
- "accountName"
- ],
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "accountKey"
- ]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": [
- "useSASTokens",
- "sasToken"
- ]
- }
- ]
- }
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/deltalake/ui_config.json b/data/destinations/deltalake/ui_config.json
deleted file mode 100644
index a344479ae..000000000
--- a/data/destinations/deltalake/ui_config.json
+++ /dev/null
@@ -1,439 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,100})$",
- "regexErrorMessage": "Invalid Host",
- "placeholder": "xxx.cloud.databricks.com",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Port",
- "placeholder": "443",
- "required": true
- },
- {
- "type": "textInput",
- "label": "HTTP Path",
- "value": "path",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid HTTP Path",
- "placeholder": "sql/protocolv1/o// or /sql/1.0/endpoints/",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Personal Access Token",
- "value": "token",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Access Token",
- "placeholder": "e.g: ",
- "required": true,
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Enable delta tables creation in an external location",
- "value": "enableExternalLocation",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "enableExternalLocation",
- "selectedValue": true
- }
- ],
- "label": "External delta table location",
- "value": "externalLocation",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid External Delta Table Location",
- "placeholder": "/path/to/delta/table",
- "required": true,
- "footerNote": "This can only be applied to the new delta tables created by RudderStack. For already existing tables, RudderStack do not recreate the tables again.",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/data-warehouse-integrations/delta-lake/#faqs",
- "text": "Please refer to the FAQs section, before you wanted to make any changes around managed and unmanaged tables provided by the Databricks."
- }
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "labelNote": "Schema name for the warehouse where the tables are created",
- "value": "namespace",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "regexErrorMessage": "Invalid Namespace",
- "required": false,
- "placeholder": "e.g: iosSource",
- "footerNote": "Default will be the source name"
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- },
- {
- "type": "timeRangePicker",
- "label": "Exclude window (Optional)",
- "value": "excludeWindow",
- "startTime": {
- "label": "start time",
- "value": "excludeWindowStartTime"
- },
- "endTime": {
- "label": "end time",
- "value": "excludeWindowEndTime"
- },
- "options": {
- "omitSeconds": true,
- "minuteStep": 1
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- },
- {
- "title": "Object Storage Configuration",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Choose your Storage Provider",
- "value": "bucketProvider",
- "options": [
- {
- "name": "S3",
- "value": "S3"
- },
- {
- "name": "GCS",
- "value": "GCS"
- },
- {
- "name": "AZURE_BLOB",
- "value": "AZURE_BLOB"
- }
- ],
- "defaultOption": {
- "name": "S3",
- "value": "S3"
- },
- "required": true
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- }
- ],
- "label": "Staging S3 Storage Bucket Name",
- "labelNote": "S3 Bucket to store data before loading into DeltaLake",
- "value": "bucketName",
- "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: s3-event-logs",
- "footerNote": "Please make sure the bucket exists in your S3"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- }
- ],
- "label": "Staging GCS Object Storage Bucket Name",
- "labelNote": "GCS Bucket to store data before loading into DeltaLake",
- "value": "bucketName",
- "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: gcs-event-logs",
- "footerNote": "Please make sure the bucket exists in your GCS"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- }
- ],
- "label": "Staging Azure Blob Storage Container Name",
- "labelNote": "Container to store data before loading into DeltaLake",
- "value": "containerName",
- "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
- "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-event-logs",
- "footerNote": "Please make sure the container exists in your Azure Blob Storage"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "checkbox",
- "label": "Use STS Tokens to copy staging files",
- "value": "useSTSTokens",
- "default": false,
- "footerNote": "Note: This feature is only supported with databricks S3A client.",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- }
- ]
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useSTSTokens",
- "selectedValue": true
- }
- ],
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useSTSTokens",
- "selectedValue": true
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": true
- }
- ],
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useSTSTokens",
- "selectedValue": true
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id",
- "secret": true
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useSTSTokens",
- "selectedValue": true
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- }
- ],
- "label": "Enable Server Side Encryption For S3?",
- "value": "enableSSE",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- }
- ],
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- }
- ],
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- }
- ],
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "secret": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/digital_ocean_spaces/db_config.json b/data/destinations/digital_ocean_spaces/db_config.json
deleted file mode 100644
index 3640054df..000000000
--- a/data/destinations/digital_ocean_spaces/db_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "DIGITAL_OCEAN_SPACES",
- "displayName": "DigitalOcean Spaces",
- "config": {
- "transformAt": "none",
- "transformAtV1": "none",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "cordova",
- "warehouse",
- "reactnative",
- "flutter"
- ],
- "destConfig": {
- "defaultConfig": [
- "endPoint",
- "accessKeyID",
- "accessKey",
- "bucketName",
- "prefix"
- ]
- },
- "secretKeys": [
- "accessKeyID",
- "secretAccessKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/digital_ocean_spaces/metadata.json b/data/destinations/digital_ocean_spaces/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/digital_ocean_spaces/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/digital_ocean_spaces/schema.json b/data/destinations/digital_ocean_spaces/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/digital_ocean_spaces/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/digital_ocean_spaces/ui_config.json b/data/destinations/digital_ocean_spaces/ui_config.json
deleted file mode 100644
index 4ad8ad1f7..000000000
--- a/data/destinations/digital_ocean_spaces/ui_config.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "DigitalOcean Spaces Endpoint",
- "value": "endPoint",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid DigitalOcean Spaces Endpoint",
- "required": true,
- "placeholder": "e.g: sgp1.digitaloceanspaces.com",
- "footerNote": "Please make sure to include region in endpoint"
- },
- {
- "type": "textInput",
- "label": "Spaces Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Spaces Access Key ID",
- "required": true,
- "placeholder": "e.g: CYKPHWDRAFHTHABAVGF6",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Spaces Access Key Secret",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Spaces Access Key Secret",
- "required": true,
- "placeholder": "e.g: zuftfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Spaces Bucket Name",
- "value": "bucketName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Spaces Bucket Name",
- "required": true,
- "placeholder": "e.g: event-bucket"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "rudder"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/discord/db_config.json b/data/destinations/discord/db_config.json
deleted file mode 100644
index b6f7b6783..000000000
--- a/data/destinations/discord/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "DISCORD",
- "displayName": "Discord",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "identifyTemplate",
- "embedTitleTemplate",
- "embedDescriptionTemplate",
- "embedFlag",
- "eventTemplateSettings",
- "webhookUrl",
- "whitelistedTraitsSettings"
- ]
- },
- "secretKeys": []
- }
-}
diff --git a/data/destinations/discord/metadata.json b/data/destinations/discord/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/discord/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/discord/schema.json b/data/destinations/discord/schema.json
deleted file mode 100644
index 6b861550b..000000000
--- a/data/destinations/discord/schema.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "webhookUrl"
- ],
- "properties": {
- "webhookUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
- },
- "identifyTemplate": {
- "type": "string",
- "pattern": "^(.{0,1000})$"
- },
- "embedFlag": {
- "type": "boolean"
- },
- "embedTitleTemplate": {
- "type": "string",
- "pattern": "^(.{0,1000})$"
- },
- "embedDescriptionTemplate": {
- "type": "string",
- "pattern": "^(.{0,1000})$"
- },
- "eventTemplateSettings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "^(.{0,100})$"
- },
- "eventTemplate": {
- "type": "string",
- "pattern": "^(.{0,100})$"
- },
- "eventRegex": {
- "type": "boolean"
- }
- }
- }
- },
- "whitelistedTraitsSettings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "trait": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/discord/ui_config.json b/data/destinations/discord/ui_config.json
deleted file mode 100644
index d7c777e64..000000000
--- a/data/destinations/discord/ui_config.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Identify Template",
- "fields": [
- {
- "type": "textInput",
- "label": "Identify Template",
- "value": "identifyTemplate",
- "regex": "^(.{0,1000})$",
- "regexErrorMessage": "Invalid Identify Template",
- "required": false,
- "placeholder": "e.g: User {{name}} with {{traits}} is identified",
- "footerNote": "This template will be used to build text message for identify Call"
- }
- ]
- },
- {
- "title": "Event Template",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "eventTemplateSettings",
- "customFields": [
- {
- "type": "textInput",
- "label": "Event Name",
- "value": "eventName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Event Name",
- "required": false,
- "placeholder": "e.g: Product Viewed",
- "footerNote": "For this event below template would be used to build message for track call"
- },
- {
- "type": "textInput",
- "label": "Event Template",
- "value": "eventTemplate",
- "regex": "^(.{0,1000})$",
- "regexErrorMessage": "Invalid Event Template",
- "required": false,
- "placeholder": "e.g: User {{name}} did {{event}} with {{properties}}",
- "footerNote": "This template will be used to build text message for track Call for above event name"
- },
- {
- "type": "checkbox",
- "label": "Regex Matching",
- "value": "eventRegex",
- "footerNote": "If true, this matches the event name with above mentioned event.",
- "default": false
- }
- ]
- }
- ]
- },
- {
- "title": "Embed Message Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Embed Flag",
- "value": "embedFlag",
- "required": false,
- "default": false,
- "footerNote": "Toggle it on if you want a embed message on the discord. Refer To docs for more details"
- },
- {
- "preRequisiteField": {
- "name": "embedFlag",
- "selectedValue": true
- },
- "type": "textInput",
- "label": "Title Template",
- "value": "embedTitleTemplate",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid template",
- "required": false,
- "placeholder": "e.g: {{name}} ",
- "footerNote": "This template will be used to build title for embed message"
- },
- {
- "preRequisiteField": {
- "name": "embedFlag",
- "selectedValue": true
- },
- "type": "textInput",
- "label": "Description Template",
- "value": "embedDescriptionTemplate",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid template",
- "required": false,
- "placeholder": "e.g: {{traits}}",
- "footerNote": "This template will be used to build description for embed message"
- }
- ]
- },
- {
- "title": "Incoming Webhook Url",
- "fields": [
- {
- "type": "textInput",
- "label": "Webhook Url",
- "value": "webhookUrl",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(https?|ftp)://[^\\s/$.?#].[^\\s]*$",
- "regexErrorMessage": "Invalid Webhook Url",
- "required": true,
- "placeholder": "e.g: https://discord.com/api/webhooks/12rf2v29038y3234gr34/78319yrgfb284q3130",
- "footerNote": "The url mapped to discord channel where you want to send the message. Refer to docs for more."
- }
- ]
- },
- {
- "title": "Whitelisted Traits",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedTraitsSettings",
- "customFields": [
- {
- "type": "textInput",
- "label": "Trait",
- "value": "trait",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})",
- "regexErrorMessage": "Invalid Trait",
- "required": false,
- "footerNote": "Mention the traits which you want to display in the message through templates, if not provided, we take all the traits in the message.",
- "placeholder": "e.g: firstName"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/drip/db_config.json b/data/destinations/drip/db_config.json
deleted file mode 100644
index 8555295d7..000000000
--- a/data/destinations/drip/db_config.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "DRIP",
- "displayName": "Drip",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "accountId",
- "campaignId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "apiKey",
- "campaignId",
- "enableUserCreation",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/drip/metadata.json b/data/destinations/drip/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/drip/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/drip/schema.json b/data/destinations/drip/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/drip/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/engage/db_config.json b/data/destinations/engage/db_config.json
deleted file mode 100644
index 4afe8260d..000000000
--- a/data/destinations/engage/db_config.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "name": "ENGAGE",
- "displayName": "Engage",
- "config": {
- "transformAt": "roouter",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "publicKey",
- "privateKey",
- "listIds",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "publicKey",
- "privateKey",
- "listIds",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "privateKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/engage/metadata.json b/data/destinations/engage/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/engage/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/engage/schema.json b/data/destinations/engage/schema.json
deleted file mode 100644
index 904aac847..000000000
--- a/data/destinations/engage/schema.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "publicKey",
- "privateKey"
- ],
- "properties": {
- "publicKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "privateKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "listIds": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "listID": {
- "type": "string"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/eventbridge/db_config.json b/data/destinations/eventbridge/db_config.json
deleted file mode 100644
index 76ab31fe1..000000000
--- a/data/destinations/eventbridge/db_config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "EVENTBRIDGE",
- "displayName": "AWS EventBridge",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias",
- "group"
- ],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "iamRoleARN",
- "roleBasedAuth",
- "region",
- "accessKeyID",
- "accessKey",
- "detailType",
- "eventBusName",
- "resourceID"
- ]
- },
- "secretKeys": ["accessKeyID", "accessKey"]
- }
-}
diff --git a/data/destinations/eventbridge/metadata.json b/data/destinations/eventbridge/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/eventbridge/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/eventbridge/schema.json b/data/destinations/eventbridge/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/eventbridge/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/facebook_offline_conversions/metadata.json b/data/destinations/facebook_offline_conversions/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/facebook_offline_conversions/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/facebook_pixel/db_config.json b/data/destinations/facebook_pixel/db_config.json
deleted file mode 100644
index e97c18ac5..000000000
--- a/data/destinations/facebook_pixel/db_config.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "FACEBOOK_PIXEL",
- "displayName": "Facebook Pixel",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "blacklistPiiProperties",
- "categoryToContent",
- "pixelId",
- "eventsToEvents",
- "eventCustomProperties",
- "valueFieldIdentifier",
- "advancedMapping",
- "legacyConversionPixelId",
- "whitelistPiiProperties",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "useUpdatedMapping"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "blacklistPiiProperties",
- "categoryToContent",
- "pixelId",
- "eventsToEvents",
- "eventCustomProperties",
- "valueFieldIdentifier",
- "advancedMapping",
- "whitelistPiiProperties",
- "limitedDataUSage",
- "accessToken",
- "testDestination",
- "testEventCode",
- "standardPageCall",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "useUpdatedMapping"
- ],
- "web": [
- "useNativeSDK",
- "legacyConversionPixelId",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/facebook_pixel/metadata.json b/data/destinations/facebook_pixel/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/facebook_pixel/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/facebook_pixel/schema.json b/data/destinations/facebook_pixel/schema.json
deleted file mode 100644
index e1c17e6fe..000000000
--- a/data/destinations/facebook_pixel/schema.json
+++ /dev/null
@@ -1,173 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "pixelId"
- ],
- "type": "object",
- "properties": {
- "pixelId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "accessToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,208})$"
- },
- "standardPageCall": {
- "type": "boolean"
- },
- "valueFieldIdentifier": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(properties.value|properties.price)$"
- },
- "advancedMapping": {
- "type": "boolean"
- },
- "testDestination": {
- "type": "boolean"
- },
- "testEventCode": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventsToEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventCustomProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventCustomProperties": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistPiiProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "blacklistPiiProperties": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "blacklistPiiHash": {
- "type": "boolean"
- }
- }
- }
- },
- "whitelistPiiProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "whitelistPiiProperties": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "categoryToContent": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "legacyConversionPixelId": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/factorsai/db_config.json b/data/destinations/factorsai/db_config.json
deleted file mode 100644
index 219121562..000000000
--- a/data/destinations/factorsai/db_config.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "FACTORSAI",
- "displayName": "Factors AI",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "factorsAIApiKey"
- ]
- },
- "secretKeys": [
- "factorsAIApiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/factorsai/metadata.json b/data/destinations/factorsai/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/factorsai/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/factorsai/schema.json b/data/destinations/factorsai/schema.json
deleted file mode 100644
index 8a089c0ee..000000000
--- a/data/destinations/factorsai/schema.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "factorsAIApiKey"
- ],
- "type": "object",
- "properties": {
- "factorsAIApiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/factorsai/ui_config.json b/data/destinations/factorsai/ui_config.json
deleted file mode 100644
index 5184f494e..000000000
--- a/data/destinations/factorsai/ui_config.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API KEY",
- "value": "factorsAIApiKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Length of API KEY must be below 100 characters.",
- "required": true,
- "secret": true,
- "placeholder": "e.g: ABC1231RDG"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/fb/db_config.json b/data/destinations/fb/db_config.json
deleted file mode 100644
index 533c55648..000000000
--- a/data/destinations/fb/db_config.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "name": "FB",
- "displayName": "Facebook App Events",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "appID",
- "limitedDataUse",
- "dpoCountry",
- "dpoState",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "appID",
- "limitedDataUse",
- "dpoCountry",
- "dpoState",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fb/metadata.json b/data/destinations/fb/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/fb/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fb/schema.json b/data/destinations/fb/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/fb/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/fb/ui_config.json b/data/destinations/fb/ui_config.json
deleted file mode 100644
index f65457f8f..000000000
--- a/data/destinations/fb/ui_config.json
+++ /dev/null
@@ -1,138 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "APP ID",
- "value": "appID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid APP ID",
- "required": true,
- "placeholder": "e.g: bSjsdGYsOo9sjw23Shj"
- }
- ]
- },
- {
- "title": "Data Processing Options",
- "sectionNote": "These settings are applicable only for Mobile Device Mode",
- "fields": [
- {
- "type": "checkbox",
- "label": "Limited Data use",
- "value": "limitedDataUse",
- "default": false
- },
- {
- "type": "singleSelect",
- "label": "State",
- "value": "dpoState",
- "options": [
- {
- "name": "Use Facebook to detect Automatically",
- "value": "0"
- },
- {
- "name": "California",
- "value": "1000"
- }
- ],
- "defaultOption": {
- "name": "Use Facebook to detect Automatically",
- "value": "0"
- },
- "required": false,
- "footerNote": "Note: State will be sent as a Data Processing Option to Facebook only if you enable Limited Data Use. Valid values are 0, 1000."
- },
- {
- "type": "singleSelect",
- "label": "Country",
- "value": "dpoCountry",
- "options": [
- {
- "name": "Use Facebook to detect Automatically",
- "value": "0"
- },
- {
- "name": "United States of America",
- "value": "1"
- }
- ],
- "defaultOption": {
- "name": "Use Facebook to detect Automatically",
- "value": "0"
- },
- "required": false,
- "footerNote": "Note: Country will be sent as a Data Processing Option to Facebook only if you enable Limited Data Use. Valid values are 0, 1."
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": false
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/fb_custom_audience/db_config.json b/data/destinations/fb_custom_audience/db_config.json
deleted file mode 100644
index d6c39ec9b..000000000
--- a/data/destinations/fb_custom_audience/db_config.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "FB_CUSTOM_AUDIENCE",
- "displayName": "Facebook Custom Audience",
- "config": {
- "supportsVisualMapper": true,
- "syncBehaviours": [
- "mirror"
- ],
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "cloud",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "audiencelist"
- ],
- "isAudienceSupported": true,
- "destConfig": {
- "defaultConfig": [
- "accessToken",
- "audienceId",
- "maxUserCount",
- "userSchema",
- "isHashRequired",
- "isRaw",
- "disableFormat",
- "skipVerify",
- "type",
- "subType"
- ]
- },
- "secretKeys": [
- "accessToken"
- ]
- },
- "responseRules": {
- "responseType": "JSON",
- "rules": {
- "abortable": [
- {
- "errors.0.code": 200
- },
- {
- "errors.0.code": 100
- },
- {
- "errors.0.code": 2650
- },
- {
- "errors.0.code": 368
- },
- {
- "errors.0.code": 105
- },
- {
- "errors.0.code": 294
- },
- {
- "errors.0.code": 190
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fb_custom_audience/metadata.json b/data/destinations/fb_custom_audience/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/fb_custom_audience/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fb_custom_audience/schema.json b/data/destinations/fb_custom_audience/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/fb_custom_audience/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/fb_custom_audience/ui_config.json b/data/destinations/fb_custom_audience/ui_config.json
deleted file mode 100644
index 177d8dc8b..000000000
--- a/data/destinations/fb_custom_audience/ui_config.json
+++ /dev/null
@@ -1,395 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Access Token",
- "value": "accessToken",
- "required": true,
- "placeholder": "EAALmZAOFOFpcPcBAEdZCPl4uSHPxQDZCrU6KbZB1gICD9y1ZBNpevRSPPiIZBO06WZCUuySAX7vw2Re7vmZAHo6OFFZA4vsCUqq2XqBQgkbbgRKLy4mXQ4wJFJ2GXGe69qaOXgugjkdjfgRjkknkfOUUTJfmGnzShZCp2jJKBf1kDX7xZB8IX9vdfEIZBZBhHQo4ZD"
- },
- {
- "type": "textInput",
- "label": "Audience Id",
- "value": "audienceId",
- "required": true,
- "placeholder": "23847675445910030"
- },
- {
- "type": "textInput",
- "label": "Audience Batch Size",
- "value": "maxUserCount",
- "required": true,
- "placeholder": "50"
- },
- {
- "type": "singleSelect",
- "label": "Schema Fields",
- "value": "userSchema",
- "placeholder": "EMAIL",
- "mode": "multiple",
- "options": [
- {
- "name": "EMAIL",
- "value": "EMAIL"
- },
- {
- "name": "PHONE",
- "value": "PHONE"
- },
- {
- "name": "GENDER",
- "value": "GEN"
- },
- {
- "name": "MADID",
- "value": "MADID"
- },
- {
- "name": "EXTERN_ID",
- "value": "EXTERN_ID"
- },
- {
- "name": "DOB YEAR (YYYY)",
- "value": "DOBY"
- },
- {
- "name": "DOB MONTH (MM)",
- "value": "DOBM"
- },
- {
- "name": "DOB DATE (DD)",
- "value": "DOBD"
- },
- {
- "name": "LAST NAME",
- "value": "LN"
- },
- {
- "name": "FIRST NAME",
- "value": "FN"
- },
- {
- "name": "FIRST NAME INITIAL",
- "value": "FI"
- },
- {
- "name": "CITY",
- "value": "CT"
- },
- {
- "name": "US STATES",
- "value": "ST"
- },
- {
- "name": "ZIP",
- "value": "ZIP"
- },
- {
- "name": "COUNTRY",
- "value": "COUNTRY"
- }
- ],
- "defaultOption": {
- "value": [
- "EMAIL"
- ]
- },
- "footerNote": "The Allowed Parameter List : https://developers.facebook.com/docs/marketing-api/audiences/guides/custom-audiences/#hash"
- },
- {
- "type": "checkbox",
- "label": "Enable Hashing",
- "value": "isHashRequired",
- "default": true
- },
- {
- "type": "checkbox",
- "label": "Is The Data Raw",
- "value": "isRaw",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Disable Formatting",
- "value": "disableFormat",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Skip verify",
- "value": "skipVerify",
- "default": false
- },
- {
- "type": "singleSelect",
- "label": "Type",
- "value": "type",
- "placeholder": "NA",
- "mode": "single",
- "options": [
- {
- "name": "UNKNOWN",
- "value": "UNKNOWN"
- },
- {
- "name": "FILE_IMPORTED",
- "value": "FILE_IMPORTED"
- },
- {
- "name": "EVENT_BASED",
- "value": "EVENT_BASED"
- },
- {
- "name": "SEED_BASED",
- "value": "SEED_BASED"
- },
- {
- "name": "THIRD_PARTY_IMPORTED",
- "value": "THIRD_PARTY_IMPORTED"
- },
- {
- "name": "COPY_PASTE",
- "value": "COPY_PASTE"
- },
- {
- "name": "CONTACT_IMPORTER",
- "value": "CONTACT_IMPORTER"
- },
- {
- "name": "HOUSEHOLD_AUDIENCE",
- "value": "HOUSEHOLD_AUDIENCE"
- },
- {
- "name": "NA",
- "value": "NA"
- }
- ],
- "defaultOption": {
- "name": "NA",
- "value": "NA"
- }
- },
- {
- "type": "singleSelect",
- "label": "Sub Type",
- "value": "subType",
- "placeholder": "NA",
- "mode": "single",
- "options": [
- {
- "name": "ANYTHING",
- "value": "ANYTHING"
- },
- {
- "name": "NOTHING",
- "value": "NOTHING"
- },
- {
- "name": "HASHES",
- "value": "HASHES"
- },
- {
- "name": "USER_IDS",
- "value": "USER_IDS"
- },
- {
- "name": "HASHES_OR_USER_IDS",
- "value": "HASHES_OR_USER_IDS"
- },
- {
- "name": "MOBILE_ADVERTISER_IDS",
- "value": "MOBILE_ADVERTISER_IDS"
- },
- {
- "name": "FB_EVENT_SIGNALS",
- "value": "FB_EVENT_SIGNALS"
- },
- {
- "name": "EXTERNAL_IDS",
- "value": "EXTERNAL_IDS"
- },
- {
- "name": "MULTI_HASHES",
- "value": "MULTI_HASHES"
- },
- {
- "name": "TOKENS",
- "value": "TOKENS"
- },
- {
- "name": "EXTERNAL_IDS_MIX",
- "value": "EXTERNAL_IDS_MIX"
- },
- {
- "name": "WEB_PIXEL_HITS",
- "value": "WEB_PIXEL_HITS"
- },
- {
- "name": "MOBILE_APP_EVENTS",
- "value": "MOBILE_APP_EVENTS"
- },
- {
- "name": "MOBILE_APP_COMBINATION_EVENTS",
- "value": "MOBILE_APP_COMBINATION_EVENTS"
- },
- {
- "name": "VIDEO_EVENTS",
- "value": "VIDEO_EVENTS"
- },
- {
- "name": "WEB_PIXEL_COMBINATION_EVENTS",
- "value": "WEB_PIXEL_COMBINATION_EVENTS"
- },
- {
- "name": "IG_BUSINESS_EVENTS",
- "value": "IG_BUSINESS_EVENTS"
- },
- {
- "name": "MULTI_DATA_EVENTS",
- "value": "MULTI_DATA_EVENTS"
- },
- {
- "name": "STORE_VISIT_EVENTS",
- "value": "STORE_VISIT_EVENTS"
- },
- {
- "name": "INSTANT_ARTICLE_EVENTS",
- "value": "INSTANT_ARTICLE_EVENTS"
- },
- {
- "name": "ENGAGEMENT_EVENT_USERS",
- "value": "ENGAGEMENT_EVENT_USERS"
- },
- {
- "name": "FACEBOOK_WIFI_EVENTS",
- "value": "FACEBOOK_WIFI_EVENTS"
- },
- {
- "name": "CUSTOM_AUDIENCE_USERS",
- "value": "CUSTOM_AUDIENCE_USERS"
- },
- {
- "name": "S_EXPR",
- "value": "S_EXPR"
- },
- {
- "name": "DYNAMIC_RULE",
- "value": "DYNAMIC_RULE"
- },
- {
- "name": "CONVERSION_PIXEL_HITS",
- "value": "CONVERSION_PIXEL_HITS"
- },
- {
- "name": "APP_USERS",
- "value": "APP_USERS"
- },
- {
- "name": "CAMPAIGN_CONVERSIONS",
- "value": "CAMPAIGN_CONVERSIONS"
- },
- {
- "name": "WEB_PIXEL_HITS_CUSTOM_AUDIENCE_USERS",
- "value": "WEB_PIXEL_HITS_CUSTOM_AUDIENCE_USERS"
- },
- {
- "name": "MOBILE_APP_CUSTOM_AUDIENCE_USERS",
- "value": "MOBILE_APP_CUSTOM_AUDIENCE_USERS"
- },
- {
- "name": "VIDEO_EVENT_USERS",
- "value": "VIDEO_EVENT_USERS"
- },
- {
- "name": "FB_PIXEL_HITS",
- "value": "FB_PIXEL_HITS"
- },
- {
- "name": "IG_PROMOTED_POST",
- "value": "IG_PROMOTED_POST"
- },
- {
- "name": "PLACE_VISITS",
- "value": "PLACE_VISITS"
- },
- {
- "name": "OFFLINE_EVENT_USERS",
- "value": "OFFLINE_EVENT_USERS"
- },
- {
- "name": "EXPANDED_AUDIENCE",
- "value": "EXPANDED_AUDIENCE"
- },
- {
- "name": "SEED_LIST",
- "value": "SEED_LIST"
- },
- {
- "name": "PARTNER_CATEGORY_USERS",
- "value": "PARTNER_CATEGORY_USERS"
- },
- {
- "name": "PAGE_SMART_AUDIENCE",
- "value": "PAGE_SMART_AUDIENCE"
- },
- {
- "name": "MULTICOUNTRY_COMBINATION",
- "value": "MULTICOUNTRY_COMBINATION"
- },
- {
- "name": "PLATFORM_USERS",
- "value": "PLATFORM_USERS"
- },
- {
- "name": "MULTI_EVENT_SOURCE",
- "value": "MULTI_EVENT_SOURCE"
- },
- {
- "name": "SMART_AUDIENCE",
- "value": "SMART_AUDIENCE"
- },
- {
- "name": "LOOKALIKE_PLATFORM",
- "value": "LOOKALIKE_PLATFORM"
- },
- {
- "name": "SIGNAL_SOURCE",
- "value": "SIGNAL_SOURCE"
- },
- {
- "name": "MAIL_CHIMP_EMAIL_HASHES",
- "value": "MAIL_CHIMP_EMAIL_HASHES"
- },
- {
- "name": "CONSTANT_CONTACTS_EMAIL_HASHES",
- "value": "CONSTANT_CONTACTS_EMAIL_HASHES"
- },
- {
- "name": "COPY_PASTE_EMAIL_HASHES",
- "value": "COPY_PASTE_EMAIL_HASHES"
- },
- {
- "name": "CONTACT_IMPORTER",
- "value": "CONTACT_IMPORTER"
- },
- {
- "name": "DATA_FILE",
- "value": "DATA_FILE"
- },
- {
- "name": "NA",
- "value": "NA"
- }
- ],
- "defaultOption": {
- "name": "NA",
- "value": "NA"
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/firebase/db_config.json b/data/destinations/firebase/db_config.json
deleted file mode 100644
index d6b913ebb..000000000
--- a/data/destinations/firebase/db_config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "FIREBASE",
- "displayName": "Firebase",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "unity",
- "reactnative",
- "flutter"
- ],
- "destConfig": {
- "defaultConfig": [
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "unity": [
- "useNativeSDK"
- ],
- "reactnative": [
- "useNativeSDK"
- ],
- "flutter": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/firebase/metadata.json b/data/destinations/firebase/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/firebase/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/firebase/schema.json b/data/destinations/firebase/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/firebase/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/firebase/ui_config.json b/data/destinations/firebase/ui_config.json
deleted file mode 100644
index 84e1610fc..000000000
--- a/data/destinations/firebase/ui_config.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Native SDK",
- "fields": [
- {
- "type": "defaultCheckbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/firehose/db_config.json b/data/destinations/firehose/db_config.json
deleted file mode 100644
index cb1c1f3a4..000000000
--- a/data/destinations/firehose/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "FIREHOSE",
- "displayName": "Amazon Kinesis Firehose",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias",
- "group"
- ],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "iamRoleARN",
- "roleBasedAuth",
- "mapEvents",
- "region",
- "accessKeyID",
- "accessKey"
- ]
- },
- "secretKeys": ["accessKeyID", "accessKey"]
- }
-}
diff --git a/data/destinations/firehose/metadata.json b/data/destinations/firehose/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/firehose/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/firehose/schema.json b/data/destinations/firehose/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/firehose/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/freshmarketer/metadata.json b/data/destinations/freshmarketer/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/freshmarketer/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/freshsales/metadata.json b/data/destinations/freshsales/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/freshsales/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fullstory/db_config.json b/data/destinations/fullstory/db_config.json
deleted file mode 100644
index 41194ca8c..000000000
--- a/data/destinations/fullstory/db_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "FULLSTORY",
- "displayName": "Fullstory",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "fs_debug_mode",
- "fs_org",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "android",
- "ios"
- ],
- "destConfig": {
- "defaultConfig": [
- "fs_org",
- "fs_debug_mode",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fullstory/metadata.json b/data/destinations/fullstory/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/fullstory/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/fullstory/schema.json b/data/destinations/fullstory/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/fullstory/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/ga/metadata.json b/data/destinations/ga/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/ga/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/ga/schema.json b/data/destinations/ga/schema.json
deleted file mode 100644
index 982c05620..000000000
--- a/data/destinations/ga/schema.json
+++ /dev/null
@@ -1,228 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "trackingID"
- ],
- "properties": {
- "trackingID": {
- "type": "string",
- "pattern": "(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(UA|YT|MO)-\\d+-\\d{0,100}$)"
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "doubleClick": {
- "type": "boolean"
- },
- "enhancedLinkAttribution": {
- "type": "boolean"
- },
- "includeSearch": {
- "type": "boolean"
- },
- "enableServerSideIdentify": {
- "type": "boolean"
- },
- "serverSideIdentifyEventCategory": {
- "type": "string",
- "pattern": "(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
- },
- "serverSideIdentifyEventAction": {
- "type": "string",
- "pattern": "(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
- },
- "disableMd5": {
- "type": "boolean"
- },
- "anonymizeIp": {
- "type": "boolean"
- },
- "enhancedEcommerce": {
- "type": "boolean"
- },
- "nonInteraction": {
- "type": "boolean"
- },
- "sendUserId": {
- "type": "boolean"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "trackCategorizedPages": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "trackNamedPages": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "sampleRate": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- },
- "siteSpeedSampleRate": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- },
- "resetCustomDimensionsOnPage": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "resetCustomDimensionsOnPage": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- },
- "setAllMappedProps": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "domain": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
- }
- }
- },
- "optimize": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
- }
- }
- },
- "useGoogleAmpClientId": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "namedTracker": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "contentGroupings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "dimensions": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/ga360/db_config.json b/data/destinations/ga360/db_config.json
deleted file mode 100644
index 65c37a9c9..000000000
--- a/data/destinations/ga360/db_config.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "name": "GA360",
- "displayName": "Google Analytics 360",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [
- "trackingID",
- "doubleClick",
- "enhancedLinkAttribution",
- "includeSearch",
- "trackCategorizedPages",
- "trackNamedPages",
- "sampleRate",
- "siteSpeedSampleRate",
- "dimensions",
- "metrics",
- "resetCustomDimensionsOnPage",
- "setAllMappedProps",
- "contentGroupings",
- "anonymizeIp",
- "domain",
- "enhancedEcommerce",
- "nonInteraction",
- "optimize",
- "sendUserId",
- "useGoogleAmpClientId",
- "namedTracker",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "trackingID",
- "customMappings",
- "doubleClick",
- "enhancedLinkAttribution",
- "includeSearch",
- "dimensions",
- "metrics",
- "contentGroupings",
- "enableServerSideIdentify",
- "serverSideIdentifyEventCategory",
- "serverSideIdentifyEventAction",
- "anonymizeIp",
- "enhancedEcommerce",
- "nonInteraction",
- "sendUserId",
- "disableMd5",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "trackCategorizedPages",
- "trackNamedPages",
- "sampleRate",
- "siteSpeedSampleRate",
- "resetCustomDimensionsOnPage",
- "setAllMappedProps",
- "domain",
- "optimize",
- "useGoogleAmpClientId",
- "namedTracker",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/ga360/metadata.json b/data/destinations/ga360/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/ga360/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/ga360/schema.json b/data/destinations/ga360/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/ga360/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/ga4/metadata.json b/data/destinations/ga4/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/ga4/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight/db_config.json b/data/destinations/gainsight/db_config.json
deleted file mode 100644
index ed88242d8..000000000
--- a/data/destinations/gainsight/db_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "GAINSIGHT",
- "displayName": "Gainsight",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "accessKey",
- "sharedSecret",
- "tenantId",
- "domain",
- "personMap",
- "companyMap",
- "topicName",
- "eventNameMap",
- "eventVersionMap",
- "contractId"
- ]
- },
- "secretKeys": [
- "accessKey",
- "sharedSecret"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight/metadata.json b/data/destinations/gainsight/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/gainsight/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight/schema.json b/data/destinations/gainsight/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/gainsight/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight/ui_config.json b/data/destinations/gainsight/ui_config.json
deleted file mode 100644
index 8445b3c9b..000000000
--- a/data/destinations/gainsight/ui_config.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Gainsight Accesskey",
- "value": "accessKey",
- "regex": ".*",
- "footerNote": "Required for identify and group calls",
- "required": false,
- "placeholder": "e.g: 94f71917dald93k90caa4c-us20"
- },
- {
- "type": "textInput",
- "label": "Gainsight Custom Domain or Subdomain",
- "value": "domain",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Domain or Subdomain name",
- "required": true,
- "placeholder": "e.g: example-domain.gainsightcloud.com"
- }
- ]
- },
- {
- "title": "Person Field Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder payload property to Custom Gainsight Field",
- "labelLeft": "Rudder Payload Field",
- "labelRight": "Gainsight Payload Field",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: rating",
- "placeholderRight": "e.g: rating__gc",
- "value": "personMap"
- }
- ]
- },
- {
- "title": "Company Field Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder payload property to Custom Gainsight Field",
- "labelLeft": "Rudder Payload Field",
- "labelRight": "Gainsight Payload Field",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: rating",
- "placeholderRight": "e.g: rating__gc",
- "value": "companyMap"
- }
- ]
- },
- {
- "title": "Gainsight Event Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Events Shared Secret",
- "value": "sharedSecret",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g: 7869235jafasqpzxu-f71917dald93k90caa4c",
- "footerNote": "Required to work with Gainsight Events Framework"
- },
- {
- "type": "textInput",
- "label": "Tenant ID",
- "value": "tenantId",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g: jafasqpzxu-f71917dald93k90caa4c",
- "footerNote": "Required to work with Gainsight Events Framework"
- },
- {
- "type": "textInput",
- "label": "Contract ID",
- "value": "contractId",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g: event contract ID"
- },
- {
- "type": "textInput",
- "label": "Topic Name",
- "value": "topicName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Topic Name",
- "required": false,
- "placeholder": "e.g: Zendesk Tickets",
- "footerNote": "Required to work with Gainsight Events Framework"
- },
- {
- "type": "dynamicForm",
- "label": "Map RudderStack Event to Gainsight Event",
- "labelLeft": "Rudder Event Name",
- "labelRight": "Gainsight Event Name",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Clicked",
- "placeholderRight": "e.g: GS Product Clicked",
- "value": "eventNameMap"
- },
- {
- "type": "dynamicForm",
- "label": "Map RudderStack Event to Gainsight Event Version",
- "labelLeft": "Rudder Event Name",
- "labelRight": "Gainsight Event Version",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Clicked",
- "placeholderRight": "e.g: 1.0.0",
- "value": "eventVersionMap"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight_px/db_config.json b/data/destinations/gainsight_px/db_config.json
deleted file mode 100644
index 979ddc75f..000000000
--- a/data/destinations/gainsight_px/db_config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "GAINSIGHT_PX",
- "displayName": "Gainsight PX",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "productTagKey",
- "userAttributeMap",
- "accountAttributeMap",
- "globalContextMap"
- ]
- },
- "secretKeys": [
- "apiKey",
- "productTagKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight_px/metadata.json b/data/destinations/gainsight_px/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/gainsight_px/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight_px/schema.json b/data/destinations/gainsight_px/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/gainsight_px/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/gainsight_px/ui_config.json b/data/destinations/gainsight_px/ui_config.json
deleted file mode 100644
index 1bc0cf695..000000000
--- a/data/destinations/gainsight_px/ui_config.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": ".*",
- "footerNote": "Your Gainsight PX API Key",
- "required": true,
- "placeholder": "e.g: 94f71917dald93k90caa4c-us20143",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Product Tag Key",
- "value": "productTagKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Product Tag Key",
- "required": true,
- "placeholder": "e.g: AP-XXXXXX-1",
- "footerNote": "Your Webapp Product Tag Key",
- "secret": true
- }
- ]
- },
- {
- "title": "User Attribute Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder payload property to Custom User Attribute",
- "labelLeft": "Rudder Payload Field",
- "labelRight": "Custom Attribute",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: rating",
- "placeholderRight": "e.g: Rating",
- "footerNote": "Provide the Custom Attribute API Name",
- "value": "userAttributeMap"
- }
- ]
- },
- {
- "title": "Account Attribute Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder payload property to Custom Account Attribute",
- "labelLeft": "Rudder Payload Field",
- "labelRight": "Custom Attribute",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: revenue",
- "placeholderRight": "e.g: annualRevenue",
- "footerNote": "Provide the Custom Attribute API Name",
- "value": "accountAttributeMap"
- }
- ]
- },
- {
- "title": "Global Context Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Provide Key Value pairs for Global Context Object",
- "labelLeft": "Key",
- "labelRight": "Value",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: projectId",
- "placeholderRight": "e.g: p-123",
- "footerNote": "Used with Custom Events",
- "value": "globalContextMap"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/gcs/db_config.json b/data/destinations/gcs/db_config.json
deleted file mode 100644
index 85e754ecc..000000000
--- a/data/destinations/gcs/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "GCS",
- "displayName": "Google Cloud Storage",
- "config": {
- "transformAt": "none",
- "transformAtV1": "none",
- "saveDestinationResponse": false,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "destConfig": {
- "defaultConfig": [
- "bucketName",
- "prefix",
- "credentials"
- ]
- },
- "secretKeys": [
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gcs/metadata.json b/data/destinations/gcs/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/gcs/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gcs/schema.json b/data/destinations/gcs/schema.json
deleted file mode 100644
index f0a5f634c..000000000
--- a/data/destinations/gcs/schema.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "additionalProperties": true,
- "required": [
- "bucketName"
- ],
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gcs/ui_config.json b/data/destinations/gcs/ui_config.json
deleted file mode 100644
index bdad82328..000000000
--- a/data/destinations/gcs/ui_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Google Cloud Storage Bucket Name",
- "value": "bucketName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Google Cloud Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: gcs-event-logs"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "textareaInput",
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "required": false,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/gcs_datalake/db_config.json b/data/destinations/gcs_datalake/db_config.json
deleted file mode 100644
index 323687c25..000000000
--- a/data/destinations/gcs_datalake/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "GCS_DATALAKE",
- "displayName": "Google Cloud Storage Datalake",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "bucketName",
- "prefix",
- "namespace",
- "tableSuffix",
- "timeWindowLayout",
- "credentials",
- "syncFrequency",
- "syncStartAt"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gcs_datalake/metadata.json b/data/destinations/gcs_datalake/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/gcs_datalake/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gcs_datalake/schema.json b/data/destinations/gcs_datalake/schema.json
deleted file mode 100644
index b3a695cfe..000000000
--- a/data/destinations/gcs_datalake/schema.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "bucketName",
- "credentials"
- ],
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "tableSuffix": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "timeWindowLayout": {
- "type": "string",
- "pattern": "^(2006/01/02/15|dt=2006-01-02|year=2006|year=2006/month=01|year=2006/month=01/day=02|year=2006/month=01/day=02/hour=15)$",
- "default": "2006/01/02/15"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- }
- },
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gcs_datalake/ui_config.json b/data/destinations/gcs_datalake/ui_config.json
deleted file mode 100644
index 00ab6942f..000000000
--- a/data/destinations/gcs_datalake/ui_config.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "GCS Storage Bucket Name",
- "labelNote": "GCS Bucket to store your event data",
- "value": "bucketName",
- "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: gcs-event-logs",
- "footerNote": "Please make sure the bucket exists in your GCS"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "labelNote": "If configured, all data pushed by rudderstack will be at https://storage.googleapis.com///",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "labelNote": "Schema name for the warehouse where the tables are created",
- "value": "namespace",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "regexErrorMessage": "Invalid Namespace",
- "required": false,
- "placeholder": "e.g: RUDDER_NAMESPACE",
- "footerNote": "All data for the destination would be pushed to https://storage.googleapis.com///rudder-datalake/."
- },
- {
- "type": "textInput",
- "label": "Table suffix (optional)",
- "labelNote": "If configured, table data would be pushed to /",
- "value": "tableSuffix",
- "regex": ".*",
- "regexErrorMessage": "Invalid Table suffix path",
- "required": false,
- "placeholder": "e.g: TABLE_SUFFIX_PATH"
- },
- {
- "type": "singleSelect",
- "label": "Choose time window layout",
- "value": "timeWindowLayout",
- "options": [
- {
- "name": "Default (YYYY/MM/DD/HH)",
- "value": "2006/01/02/15"
- },
- {
- "name": "Upto Date (dt=YYYY-MM-DD)",
- "value": "dt=2006-01-02"
- },
- {
- "name": "Upto Year (year=YYYY)",
- "value": "year=2006"
- },
- {
- "name": "Upto Month (year=YYYY/month=MM)",
- "value": "year=2006/month=01"
- },
- {
- "name": "Upto Day (year=YYYY/month=MM/day=DD)",
- "value": "year=2006/month=01/day=02"
- },
- {
- "name": "Upto Hour (year=YYYY/month=MM/day=DD/hour=HH)",
- "value": "year=2006/month=01/day=02/hour=15"
- }
- ],
- "defaultOption": {
- "name": "Default (YYYY/MM/DD/HH)",
- "value": "2006/01/02/15"
- },
- "required": false
- },
- {
- "type": "textareaInput",
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_enhanced_conversions/metadata.json b/data/destinations/google_adwords_enhanced_conversions/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/google_adwords_enhanced_conversions/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_enhanced_conversions/schema.json b/data/destinations/google_adwords_enhanced_conversions/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/google_adwords_enhanced_conversions/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_enhanced_conversions/ui_config.json b/data/destinations/google_adwords_enhanced_conversions/ui_config.json
deleted file mode 100644
index 3fac63fdf..000000000
--- a/data/destinations/google_adwords_enhanced_conversions/ui_config.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Customer ID",
- "value": "customerId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Customer Id",
- "required": true,
- "placeholder": "e.g: 9693429833"
- },
- {
- "type": "checkbox",
- "label": "Sub Account",
- "value": "subAccount",
- "required": false,
- "default": false
- },
- {
- "type": "textInput",
- "label": "Login Customer ID",
- "preRequisiteField": [
- {
- "name": "subAccount",
- "selectedValue": true
- }
- ],
- "value": "loginCustomerId",
- "regex": "^(.{1,100})$",
- "required": true,
- "footerNote": "If Customer-Id is from a sub account then provide customerId of manager account"
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "listOfConversions",
- "label": "List of Conversion",
- "customFields": [
- {
- "type": "textInput",
- "value": "conversions",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- },
- {
- "type": "checkbox",
- "label": "Hashing required",
- "value": "requireHash",
- "default": true,
- "footerNote": "If this option is set to on we will encrypt mail, phoneNumber, firstName, lastName and streetAddress"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_offline_conversions/metadata.json b/data/destinations/google_adwords_offline_conversions/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/google_adwords_offline_conversions/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_offline_conversions/schema.json b/data/destinations/google_adwords_offline_conversions/schema.json
deleted file mode 100644
index 1027d3e3f..000000000
--- a/data/destinations/google_adwords_offline_conversions/schema.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "customerId"
- ],
- "properties": {
- "customerId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "subAccount": {
- "type": "boolean"
- },
- "loginCustomerId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventsToOfflineConversionsTypeMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventsToConversionsNamesMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "customVariables": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "UserIdentifierSource": {
- "type": "string",
- "pattern": "(^env[.].*)|^(none|UNSPECIFIED|UNKNOWN|FIRST_PARTY|THIRD_PARTY)$"
- },
- "conversionEnvironment": {
- "type": "string",
- "pattern": "(^env[.].*)|^(none|UNSPECIFIED|UNKNOWN|APP|WEB)$"
- },
- "defaultUserIdentifier": {
- "type": "string",
- "pattern": "(^env[.].*)|^(email|phone)$"
- },
- "enableServerSideIdentify": {
- "type": "boolean"
- },
- "validateOnly": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_offline_conversions/ui_config.json b/data/destinations/google_adwords_offline_conversions/ui_config.json
deleted file mode 100644
index 532840f61..000000000
--- a/data/destinations/google_adwords_offline_conversions/ui_config.json
+++ /dev/null
@@ -1,187 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Customer ID",
- "value": "customerId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Customer Id",
- "required": true,
- "placeholder": "e.g: 6293429833"
- },
- {
- "type": "checkbox",
- "label": "Sub Account",
- "value": "subAccount",
- "required": false,
- "default": false
- },
- {
- "type": "textInput",
- "label": "Login Customer ID",
- "preRequisiteField": [
- {
- "name": "subAccount",
- "selectedValue": true
- }
- ],
- "value": "loginCustomerId",
- "regex": "^(.{1,100})$",
- "required": true,
- "footerNote": "If Customer-Id is from a sub account then provide customerId of manager account"
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "dynamicSelectForm",
- "label": "Map your events with Google Ads Offline Conversions",
- "labelLeft": "RudderStack event names",
- "labelRight": "Google ads offline conversions",
- "value": "eventsToOfflineConversionsTypeMapping",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g: Sign up completed",
- "options": [
- {
- "name": "Click",
- "value": "click"
- },
- {
- "name": "Call",
- "value": "call"
- }
- ]
- },
- {
- "type": "dynamicForm",
- "label": "Map your Google Ads Conversions Names",
- "labelLeft": "RudderStack event names",
- "labelRight": "Google Ads conversion names",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Sign up completed",
- "placeholderRight": "e.g: App Sign-up",
- "value": "eventsToConversionsNamesMapping"
- },
- {
- "type": "dynamicForm",
- "label": "Map your variable names to custom Google Ads variables.",
- "labelLeft": "custom variable names",
- "labelRight": "Google Ads custom variables",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. value",
- "placeholderRight": "eg: revenue",
- "value": "customVariables"
- },
- {
- "type": "singleSelect",
- "label": "User Identifier Source",
- "value": "UserIdentifierSource",
- "required": false,
- "footerNote": "Source of the user identifier",
- "options": [
- {
- "name": "None",
- "value": "none"
- },
- {
- "name": "UNSPECIFIED",
- "value": "UNSPECIFIED"
- },
- {
- "name": "UNKNOWN",
- "value": "UNKNOWN"
- },
- {
- "name": "FIRST_PARTY",
- "value": "FIRST_PARTY"
- },
- {
- "name": "THIRD_PARTY",
- "value": "THIRD_PARTY"
- }
- ],
- "defaultOption": {
- "name": "None",
- "value": "none"
- }
- },
- {
- "type": "singleSelect",
- "label": "Conversion Environment",
- "value": "conversionEnvironment",
- "required": false,
- "footerNote": "The environment this conversion was recorded on. e.g. App or Web.",
- "options": [
- {
- "name": "None",
- "value": "none"
- },
- {
- "name": "UNSPECIFIED",
- "value": "UNSPECIFIED"
- },
- {
- "name": "UNKNOWN",
- "value": "UNKNOWN"
- },
- {
- "name": "APP",
- "value": "APP"
- },
- {
- "name": "WEB",
- "value": "WEB"
- }
- ],
- "defaultOption": {
- "name": "None",
- "value": "none"
- }
- },
- {
- "type": "singleSelect",
- "label": "Default user identifier for click conversions",
- "value": "defaultUserIdentifier",
- "footerNote": "The user identifier for click conversions matching",
- "options": [
- {
- "name": "Email",
- "value": "email"
- },
- {
- "name": "Phone number",
- "value": "phone"
- }
- ],
- "defaultOption": {
- "name": "Email",
- "value": "email"
- }
- },
- {
- "type": "checkbox",
- "label": "Hash User Identifying Information (SHA-256)",
- "value": "hashUserIdentifier",
- "default": true,
- "footerNote": "To hash User identifying information like email, phone number, first name, last name and address using SHA-256."
- },
- {
- "type": "checkbox",
- "label": "Validate Only",
- "value": "validateOnly",
- "default": false,
- "footerNote": "Enable this option to only validate the request"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_remarketing_lists/metadata.json b/data/destinations/google_adwords_remarketing_lists/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/google_adwords_remarketing_lists/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_remarketing_lists/schema.json b/data/destinations/google_adwords_remarketing_lists/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/google_adwords_remarketing_lists/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/google_adwords_remarketing_lists/ui_config.json b/data/destinations/google_adwords_remarketing_lists/ui_config.json
deleted file mode 100644
index 559467c0d..000000000
--- a/data/destinations/google_adwords_remarketing_lists/ui_config.json
+++ /dev/null
@@ -1,114 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "List ID",
- "value": "listId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Google remarketing list ID",
- "required": true,
- "placeholder": "e.g: 7692349833"
- },
- {
- "type": "textInput",
- "label": "Customer ID",
- "value": "customerId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Customer ID",
- "required": true,
- "placeholder": "e.g: 9693429833"
- },
- {
- "type": "checkbox",
- "label": "Sub Account",
- "value": "subAccount",
- "required": false,
- "default": false
- },
- {
- "type": "textInput",
- "label": "Login Customer ID",
- "preRequisiteField": [
- {
- "name": "subAccount",
- "selectedValue": true
- }
- ],
- "value": "loginCustomerId",
- "regex": "^(.{0,100})$",
- "required": true,
- "footerNote": "If customer ID is from a sub account, then provide the customer ID of manager account"
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "List Type",
- "value": "typeOfList",
- "mode": "single",
- "options": [
- {
- "name": "General",
- "value": "General"
- },
- {
- "name": "User ID",
- "value": "userID"
- },
- {
- "name": "Mobile Device ID",
- "value": "mobileDeviceID"
- }
- ],
- "defaultOption": {
- "value": "General"
- }
- },
- {
- "type": "checkbox",
- "label": "Hash Required",
- "value": "isHashRequired",
- "default": true
- },
- {
- "type": "singleSelect",
- "label": "Schema Fields",
- "preRequisiteField": [
- {
- "name": "typeOfList",
- "selectedValue": "General"
- }
- ],
- "value": "userSchema",
- "mode": "multiple",
- "options": [
- {
- "name": "Email",
- "value": "email"
- },
- {
- "name": "Phone Number",
- "value": "phone"
- },
- {
- "name": "Address Info",
- "value": "addressInfo"
- }
- ],
- "defaultOption": {
- "name": "Email",
- "value": [
- "email"
- ]
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/google_cloud_function/db_config.json b/data/destinations/google_cloud_function/db_config.json
deleted file mode 100644
index 911df86ae..000000000
--- a/data/destinations/google_cloud_function/db_config.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "GOOGLE_CLOUD_FUNCTION",
- "displayName": "Google Cloud Function",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "triggerType",
- "googleCloudFunctionUrl",
- "gcloudAuthorization",
- "apiKeyId",
- "enableBatchInput"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "amp",
- "android",
- "cordova",
- "cloud",
- "flutter",
- "ios",
- "reactnative",
- "unity",
- "warehouse",
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "triggerType",
- "googleCloudFunctionUrl",
- "gcloudAuthorization",
- "apiKeyId",
- "enableBatchInput",
- "maxBatchSize"
- ]
- },
- "secretKeys": [
- "apiKeyId",
- "gcloudAuthorization"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_cloud_function/metadata.json b/data/destinations/google_cloud_function/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/google_cloud_function/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_cloud_function/schema.json b/data/destinations/google_cloud_function/schema.json
deleted file mode 100644
index 8186c10ac..000000000
--- a/data/destinations/google_cloud_function/schema.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "triggerType"
- ],
- "properties": {
- "apiKeyId": {
- "type": "string"
- },
- "enableBatchInput": {
- "type": "boolean"
- },
- "maxBatchSize": {
- "type": "string",
- "pattern": "^[1-9]\\d*$"
- },
- "triggerType": {
- "type": "string",
- "pattern": "^(Http|Https)$"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "triggerType": {
- "const": "Http"
- }
- },
- "required": [
- "triggerType"
- ]
- },
- "then": {
- "properties": {
- "googleCloudFunctionUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
- }
- },
- "required": [
- "googleCloudFunctionUrl"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "triggerType": {
- "const": "Https"
- }
- },
- "required": [
- "triggerType"
- ]
- },
- "then": {
- "properties": {
- "googleCloudFunctionUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
- },
- "gcloudAuthorization": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": [
- "googleCloudFunctionUrl",
- "gcloudAuthorization"
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_cloud_function/ui_config.json b/data/destinations/google_cloud_function/ui_config.json
deleted file mode 100644
index 366c47977..000000000
--- a/data/destinations/google_cloud_function/ui_config.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Choose your Trigger Type ",
- "value": "triggerType",
- "options": [
- {
- "name": "HTTP",
- "value": "Http"
- },
- {
- "name": "HTTPS",
- "value": "Https"
- }
- ],
- "required": true
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "triggerType",
- "selectedValue": "Http"
- }
- ],
- "label": "URL",
- "value": "googleCloudFunctionUrl",
- "required": true,
- "placeholder": "http://www.abcd.com",
- "regex": "(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$",
- "footerNote": "The Url given under Trigger section when you create Google Cloud Function"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "triggerType",
- "selectedValue": "Https"
- }
- ],
- "label": "URL",
- "value": "googleCloudFunctionUrl",
- "required": true,
- "placeholder": "http://www.abcd.com",
- "regex": "(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$",
- "footerNote": "The Url given under Trigger section when you create Google Cloud Function"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "triggerType",
- "selectedValue": "Https"
- }
- ],
- "label": "Gcloud Authorization",
- "value": "gcloudAuthorization",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
- "secret": true,
- "footerNote": "Your private Gcloud Authorization Token"
- },
- {
- "type": "textInput",
- "label": "Api Key Id",
- "value": "apiKeyId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Api Key Id",
- "required": false,
- "placeholder": "e.g: bSjsdGYsOo9sjw23Shj",
- "secret": true,
- "footerNote": "Your API Key"
- }
- ]
- },
- {
- "title": "Optional Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable Batch Input",
- "value": "enableBatchInput",
- "default": false,
- "footerNote": "While this is checked, Events are sent in Batch."
- },
- {
- "type": "textInput",
- "preRequisiteField": {
- "name": "enableBatchInput",
- "selectedValue": true
- },
- "label": "Max Batch Size",
- "value": "maxBatchSize",
- "regex": "^[1-9]\\d*$",
- "regexErrorMessage": "Invalid batch size",
- "placeholder": "e.g: 100",
- "required": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/google_optimize/db_config.json b/data/destinations/google_optimize/db_config.json
deleted file mode 100644
index 033bd9ddc..000000000
--- a/data/destinations/google_optimize/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "GOOGLE_OPTIMIZE",
- "displayName": "Google Optimize",
- "config": {
- "transformAt": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "ga",
- "trackingId",
- "containerId",
- "async",
- "aflicker",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "secretKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "ga",
- "trackingId",
- "containerId",
- "async",
- "aflicker",
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_optimize/metadata.json b/data/destinations/google_optimize/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/google_optimize/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/google_optimize/schema.json b/data/destinations/google_optimize/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/google_optimize/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/googleads/db_config.json b/data/destinations/googleads/db_config.json
deleted file mode 100644
index 4114c997e..000000000
--- a/data/destinations/googleads/db_config.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "GOOGLEADS",
- "displayName": "Google Ads",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [
- "conversionID",
- "eventMappingFromConfig",
- "pageLoadConversions",
- "clickEventConversions",
- "defaultPageConversion",
- "dynamicRemarketing",
- "sendPageView",
- "conversionLinker",
- "disableAdPersonalization",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "conversionID",
- "eventMappingFromConfig",
- "pageLoadConversions",
- "clickEventConversions",
- "defaultPageConversion",
- "sendPageView",
- "conversionLinker",
- "disableAdPersonalization",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "dynamicRemarketing",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googleads/metadata.json b/data/destinations/googleads/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/googleads/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googleads/schema.json b/data/destinations/googleads/schema.json
deleted file mode 100644
index 5e961e378..000000000
--- a/data/destinations/googleads/schema.json
+++ /dev/null
@@ -1,137 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "conversionID"
- ],
- "properties": {
- "conversionID": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^AW-(.{0,100})$"
- },
- "eventMappingFromConfig": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "pageLoadConversions": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "conversionLabel": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "name": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "clickEventConversions": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "conversionLabel": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "name": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "defaultPageConversion": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "dynamicRemarketing": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "conversionLinker": {
- "type": "boolean"
- },
- "sendPageView": {
- "type": "boolean"
- },
- "disableAdPersonalization": {
- "type": "boolean"
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googlepubsub/db_config.json b/data/destinations/googlepubsub/db_config.json
deleted file mode 100644
index 776225fa8..000000000
--- a/data/destinations/googlepubsub/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "GOOGLEPUBSUB",
- "displayName": "Google Pub/Sub",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "eventToTopicMap",
- "credentials",
- "projectId",
- "eventToAttributesMap"
- ]
- },
- "secretKeys": [
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googlepubsub/metadata.json b/data/destinations/googlepubsub/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/googlepubsub/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googlepubsub/schema.json b/data/destinations/googlepubsub/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/googlepubsub/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/googlepubsub/ui_config.json b/data/destinations/googlepubsub/ui_config.json
deleted file mode 100644
index fc2ddf94b..000000000
--- a/data/destinations/googlepubsub/ui_config.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Project ID",
- "value": "projectId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Project ID",
- "required": true,
- "placeholder": ""
- },
- {
- "type": "textareaInput",
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in publishing data into your Google Pub/Sub",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "The credentials JSON is used by the client library to access the Pub/Sub API",
- "secret": true
- },
- {
- "type": "dynamicForm",
- "label": "Send RudderStack events to Google pub/sub topics",
- "footerNote": "Use asterics (*) to send all events to the particular topic.",
- "labelLeft": "Event",
- "labelRight": "Topic ID",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: page",
- "placeholderRight": "e.g: topic_id",
- "value": "eventToTopicMap"
- },
- {
- "type": "dynamicForm",
- "label": "Map message properties to Google pub/sub message Attribute Key",
- "footerNote": "Use asterics (*) to map for all events.",
- "labelLeft": "Event",
- "labelRight": "Field",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: event",
- "placeholderRight": "e.g: key",
- "value": "eventToAttributesMap"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/googlesheets/db_config.json b/data/destinations/googlesheets/db_config.json
deleted file mode 100644
index 4c158c978..000000000
--- a/data/destinations/googlesheets/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "GOOGLESHEETS",
- "displayName": "Google Sheets",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "sheetName",
- "eventKeyMap",
- "sheetId",
- "credentials"
- ]
- },
- "secretKeys": [
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googlesheets/metadata.json b/data/destinations/googlesheets/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/googlesheets/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/googlesheets/schema.json b/data/destinations/googlesheets/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/googlesheets/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/googlesheets/ui_config.json b/data/destinations/googlesheets/ui_config.json
deleted file mode 100644
index e2e95aa55..000000000
--- a/data/destinations/googlesheets/ui_config.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textareaInput",
- "label": "Credentials",
- "labelNote": "Google Cloud Service Account credentials JSON for RudderStack to use in publishing data into Google Sheets",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "The credentials JSON is used by the client library to access the Google Sheets API",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Sheet Id",
- "value": "sheetId",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
- "footerNote": "Your Google Sheet Id"
- },
- {
- "type": "textInput",
- "label": "Sheet Name",
- "value": "sheetName",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. Sheet1",
- "footerNote": "The spread-sheet to which you want to send data"
- },
- {
- "type": "dynamicForm",
- "label": "Map Event to Google-Sheets",
- "footerNote": "Add Event Properties to map to Google-Sheets Column",
- "labelLeft": "Event Properties",
- "labelRight": "Column Name",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: addedToCart",
- "placeholderRight": "e.g: Added To Cart",
- "value": "eventKeyMap",
- "disableInputLeft": true,
- "disableInputRight": false,
- "disableDelete": true,
- "required": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/gtm/db_config.json b/data/destinations/gtm/db_config.json
deleted file mode 100644
index b980fcae3..000000000
--- a/data/destinations/gtm/db_config.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "GTM",
- "displayName": "Google Tag Manager",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [
- "containerID",
- "serverUrl",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "containerID",
- "serverUrl",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gtm/metadata.json b/data/destinations/gtm/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/gtm/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/gtm/schema.json b/data/destinations/gtm/schema.json
deleted file mode 100644
index 8e105ba42..000000000
--- a/data/destinations/gtm/schema.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "containerID"
- ],
- "properties": {
- "containerID": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "serverUrl": {
- "type": "string"
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/heap/db_config.json b/data/destinations/heap/db_config.json
deleted file mode 100644
index dd6257e7f..000000000
--- a/data/destinations/heap/db_config.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "HEAP",
- "displayName": "Heap.io",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [
- "appId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "appId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/heap/metadata.json b/data/destinations/heap/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/heap/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/heap/schema.json b/data/destinations/heap/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/heap/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/hotjar/db_config.json b/data/destinations/hotjar/db_config.json
deleted file mode 100644
index f2e1e6eb9..000000000
--- a/data/destinations/hotjar/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "HOTJAR",
- "displayName": "Hotjar",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "siteID",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "siteID",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/hotjar/metadata.json b/data/destinations/hotjar/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/hotjar/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/hotjar/schema.json b/data/destinations/hotjar/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/hotjar/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/hs/db_config.json b/data/destinations/hs/db_config.json
deleted file mode 100644
index e183de407..000000000
--- a/data/destinations/hs/db_config.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "name": "HS",
- "displayName": "HubSpot",
- "config": {
- "supportsVisualMapper": true,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "hubID",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "authorizationType",
- "hubID",
- "apiKey",
- "accessToken",
- "apiVersion",
- "lookupField",
- "hubspotEvents",
- "rsEventName",
- "hubspotEventName",
- "eventProperties",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "doAssociation"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/hs/metadata.json b/data/destinations/hs/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/hs/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/hs/schema.json b/data/destinations/hs/schema.json
deleted file mode 100644
index 12586cac1..000000000
--- a/data/destinations/hs/schema.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "properties": {
- "authorizationType": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApiKey|newPrivateAppApi)$"
- },
- "hubID": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "accessToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "apiVersion": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApi|newApi)$"
- },
- "lookupField": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "hubspotEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "rsEventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "hubspotEventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/indicative/db_config.json b/data/destinations/indicative/db_config.json
deleted file mode 100644
index 838f094be..000000000
--- a/data/destinations/indicative/db_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "INDICATIVE",
- "displayName": "Indicative",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "alias",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/indicative/metadata.json b/data/destinations/indicative/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/indicative/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/indicative/schema.json b/data/destinations/indicative/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/indicative/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/indicative/ui_config.json b/data/destinations/indicative/ui_config.json
deleted file mode 100644
index 60a8491df..000000000
--- a/data/destinations/indicative/ui_config.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g: 99ba062d-22de-4dd0-a65f-0b064495f74f",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/intercom/db_config.json b/data/destinations/intercom/db_config.json
deleted file mode 100644
index 80902d835..000000000
--- a/data/destinations/intercom/db_config.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "INTERCOM",
- "displayName": "Intercom",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "appId",
- "mobileApiKeyAndroid",
- "mobileApiKeyIOS",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "appId",
- "collectContext",
- "sendAnonymousId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK",
- "mobileApiKeyAndroid"
- ],
- "ios": [
- "useNativeSDK",
- "mobileApiKeyIOS"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/intercom/metadata.json b/data/destinations/intercom/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/intercom/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/intercom/schema.json b/data/destinations/intercom/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/intercom/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/iterable/db_config.json b/data/destinations/iterable/db_config.json
deleted file mode 100644
index 8cb33f257..000000000
--- a/data/destinations/iterable/db_config.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "ITERABLE",
- "displayName": "Iterable",
- "config": {
- "isAudienceSupported": true,
- "supportsVisualMapper": true,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "initialisationIdentifier",
- "getInAppEventMapping",
- "purchaseEventMapping",
- "sendTrackForInapp",
- "animationDuration",
- "displayInterval",
- "onOpenScreenReaderMessage",
- "onOpenNodeToTakeFocus",
- "packageName",
- "rightOffset",
- "topOffset",
- "bottomOffset",
- "handleLinks",
- "closeButtonColor",
- "closeButtonSize",
- "closeButtonColorTopOffset",
- "closeButtonColorSideOffset",
- "iconPath",
- "isRequiredToDismissMessage",
- "closeButtonPosition"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "mapToSingleEvent",
- "trackAllPages",
- "trackCategorisedPages",
- "trackNamedPages"
- ],
- "web": [
- "useNativeSDK",
- "initialisationIdentifier",
- "getInAppEventMapping",
- "purchaseEventMapping",
- "sendTrackForInapp",
- "animationDuration",
- "displayInterval",
- "onOpenScreenReaderMessage",
- "onOpenNodeToTakeFocus",
- "packageName",
- "rightOffset",
- "topOffset",
- "bottomOffset",
- "handleLinks",
- "closeButtonColor",
- "closeButtonSize",
- "closeButtonColorTopOffset",
- "closeButtonColorSideOffset",
- "iconPath",
- "isRequiredToDismissMessage",
- "closeButtonPosition",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/iterable/metadata.json b/data/destinations/iterable/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/iterable/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/iterable/schema.json b/data/destinations/iterable/schema.json
deleted file mode 100644
index 280fbe35e..000000000
--- a/data/destinations/iterable/schema.json
+++ /dev/null
@@ -1,238 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "mapToSingleEvent": {
- "type": "boolean"
- },
- "trackAllPages": {
- "type": "boolean"
- },
- "trackCategorisedPages": {
- "type": "boolean"
- },
- "trackNamedPages": {
- "type": "boolean"
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "getInAppEventMapping": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- },
- "purchaseEventMapping": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- },
- "apiSecret": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "initialisationIdentifier": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "animationDuration": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "displayInterval": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "onOpenScreenReaderMessage": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "onOpenNodeToTakeFocus": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "packageName": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "rightOffset": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "topOffset": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "bottomOffset": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "closeButtonColor": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "closeButtonSize": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "closeButtonColorTopOffset": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "closeButtonColorSideOffset": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "iconPath": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "isRequiredToDismissMessage": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "closeButtonPosition": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "sendTrackForInapp": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "handleLinks": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/june/db_config.json b/data/destinations/june/db_config.json
deleted file mode 100644
index 6819aba0c..000000000
--- a/data/destinations/june/db_config.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "JUNE",
- "displayName": "JUNE",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "whitelistedEvents",
- "blacklistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "page",
- "identify",
- "track",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "whitelistedEvents",
- "blacklistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/june/metadata.json b/data/destinations/june/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/june/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/june/schema.json b/data/destinations/june/schema.json
deleted file mode 100644
index 911baedbe..000000000
--- a/data/destinations/june/schema.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kafka/metadata.json b/data/destinations/kafka/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/kafka/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kafka/schema.json b/data/destinations/kafka/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/kafka/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/kafka/ui_config.json b/data/destinations/kafka/ui_config.json
deleted file mode 100644
index 64fb98ca3..000000000
--- a/data/destinations/kafka/ui_config.json
+++ /dev/null
@@ -1,225 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Host Name(s)",
- "value": "hostName",
- "regex": "^((,|^)[^\\s]*)*$",
- "regexErrorMessage": "Invalid Host Name(s)",
- "required": true,
- "placeholder": "e.g: localhost",
- "footerNote": "For multiple host names, provide them in comma separated string format"
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Port",
- "required": true,
- "placeholder": "e.g: 9092"
- },
- {
- "type": "textInput",
- "label": "Topic Name",
- "value": "topic",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Topic Name",
- "required": true,
- "placeholder": "e.g: test-topic"
- },
- {
- "type": "checkbox",
- "label": "SSL Enabled",
- "value": "sslEnabled",
- "default": true
- },
- {
- "type": "textareaInput",
- "preRequisiteField": {
- "name": "sslEnabled",
- "selectedValue": true
- },
- "label": "CA certificate",
- "value": "caCertificate",
- "regex": ".*",
- "required": false,
- "placeholder": "CA Certificate"
- }
- ]
- },
- {
- "title": "SASL Authentication",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable SASL with SSL",
- "value": "useSASL",
- "default": false
- },
- {
- "type": "singleSelect",
- "preRequisiteField": {
- "name": "useSASL",
- "selectedValue": true
- },
- "label": "SASL Type",
- "value": "saslType",
- "options": [
- {
- "name": "Plain",
- "value": "plain"
- },
- {
- "name": "SCRAM SHA-512",
- "value": "sha512"
- },
- {
- "name": "SCRAM SHA-256",
- "value": "sha256"
- }
- ],
- "defaultOption": {
- "name": "Plain",
- "value": "plain"
- },
- "required": true
- },
- {
- "type": "textInput",
- "preRequisiteField": {
- "name": "useSASL",
- "selectedValue": true
- },
- "label": "Username",
- "value": "username",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid User Name",
- "required": true,
- "placeholder": "e.g: userjohn"
- },
- {
- "type": "textInput",
- "preRequisiteField": {
- "name": "useSASL",
- "selectedValue": true
- },
- "label": "Password",
- "value": "password",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Password",
- "required": true,
- "placeholder": "e.g: 1jdu234nasfa",
- "secret": true
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Convert Data to AVRO format",
- "value": "convertToAvro",
- "default": false,
- "footerNote": "If this option is turned on we will convert the data to avro"
- },
- {
- "preRequisiteField": {
- "name": "convertToAvro",
- "selectedValue": true
- },
- "label": "AVRO Schema Lists",
- "value": "avroSchemas",
- "required": true,
- "type": "dynamicCustomForm",
- "customFields": [
- {
- "type": "textInput",
- "value": "schemaId",
- "required": true,
- "label": "Schema Id",
- "placeholder": "e.g: schema-id"
- },
- {
- "type": "textareaInput",
- "value": "schema",
- "label": "Schema",
- "required": true,
- "placeholder": "schema object"
- }
- ]
- }
- ]
- },
- {
- "title": "Topic Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable multiple topic support for event types and event names",
- "value": "enableMultiTopic",
- "default": false,
- "footerNote": "Enable this option to deliver events to multiple topics"
- },
- {
- "preRequisiteField": {
- "name": "enableMultiTopic",
- "selectedValue": true
- },
- "type": "dynamicSelectForm",
- "label": "Map event type to topic",
- "labelLeft": "Event Type",
- "labelRight": "Topic",
- "value": "eventTypeToTopicMap",
- "keyLeft": "from",
- "keyRight": "to",
- "reverse": true,
- "required": true,
- "placeholderRight": "e.g. Sample-topic",
- "options": [
- {
- "name": "Identify",
- "value": "identify"
- },
- {
- "name": "Page",
- "value": "page"
- },
- {
- "name": "Screen",
- "value": "screen"
- },
- {
- "name": "Group",
- "value": "group"
- },
- {
- "name": "Alias",
- "value": "alias"
- }
- ]
- },
- {
- "preRequisiteField": {
- "name": "enableMultiTopic",
- "selectedValue": true
- },
- "type": "dynamicForm",
- "label": "Map Track events to topic",
- "required": true,
- "placeholderLeft": "e.g. Product Searched",
- "placeholderRight": "Sample-topic",
- "labelLeft": "Event Name",
- "labelRight": "Topic",
- "keyLeft": "from",
- "keyRight": "to",
- "value": "eventToTopicMap"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/keen/db_config.json b/data/destinations/keen/db_config.json
deleted file mode 100644
index ec99353df..000000000
--- a/data/destinations/keen/db_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "KEEN",
- "displayName": "Keen",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "projectID",
- "writeKey",
- "ipAddon",
- "uaAddon",
- "urlAddon",
- "referrerAddon",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "page",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "projectID",
- "writeKey",
- "ipAddon",
- "uaAddon",
- "urlAddon",
- "referrerAddon",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/keen/metadata.json b/data/destinations/keen/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/keen/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/keen/schema.json b/data/destinations/keen/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/keen/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/kinesis/metadata.json b/data/destinations/kinesis/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/kinesis/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kinesis/schema.json b/data/destinations/kinesis/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/kinesis/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/kissmetrics/db_config.json b/data/destinations/kissmetrics/db_config.json
deleted file mode 100644
index e2ab51f90..000000000
--- a/data/destinations/kissmetrics/db_config.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "KISSMETRICS",
- "displayName": "Kiss Metrics",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "prefixProperties",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "alias",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "prefixProperties",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kissmetrics/metadata.json b/data/destinations/kissmetrics/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/kissmetrics/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kissmetrics/schema.json b/data/destinations/kissmetrics/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/kissmetrics/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/klaviyo/db_config.json b/data/destinations/klaviyo/db_config.json
deleted file mode 100644
index eb783dede..000000000
--- a/data/destinations/klaviyo/db_config.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "KLAVIYO",
- "displayName": "Klaviyo",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "publicApiKey",
- "sendPageAsTrack",
- "additionalPageInfo",
- "enforceEmailAsPrimary",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "publicApiKey",
- "privateApiKey",
- "consent",
- "smsConsent",
- "listId",
- "sendPageAsTrack",
- "additionalPageInfo",
- "enforceEmailAsPrimary",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "privateApiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/klaviyo/metadata.json b/data/destinations/klaviyo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/klaviyo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/klaviyo/schema.json b/data/destinations/klaviyo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/klaviyo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/kochava/db_config.json b/data/destinations/kochava/db_config.json
deleted file mode 100644
index da6655e4e..000000000
--- a/data/destinations/kochava/db_config.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "KOCHAVA",
- "displayName": "Kochava",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "appTrackingTransparency",
- "skAdNetwork",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK",
- "appTrackingTransparency",
- "skAdNetwork"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kochava/metadata.json b/data/destinations/kochava/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/kochava/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kochava/schema.json b/data/destinations/kochava/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/kochava/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/kochava/ui_config.json b/data/destinations/kochava/ui_config.json
deleted file mode 100644
index 44f28df05..000000000
--- a/data/destinations/kochava/ui_config.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Kochava App GUID",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Kochava App GUID",
- "required": true,
- "placeholder": "e.g: kotestapplication-xxxxxxxx"
- },
- {
- "type": "checkbox",
- "label": "Enable AppTrackingTransparency (ATT)",
- "value": "appTrackingTransparency",
- "required": false,
- "default": false,
- "footerNote": "This setting is applicable for iOS device mode only and it would not work as expected if you disable AppTrackingTransparency (ATT) for your app on Kochava dashboard."
- },
- {
- "type": "checkbox",
- "label": "Enable skAdNetwork",
- "value": "skAdNetwork",
- "required": false,
- "default": false,
- "footerNote": "This setting is applicable for iOS device mode only and it requires you to configure skAdNetwork settings for your app on Kochava dashboard to work as expected."
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": false
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/kustomer/db_config.json b/data/destinations/kustomer/db_config.json
deleted file mode 100644
index 6a489e3f8..000000000
--- a/data/destinations/kustomer/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "KUSTOMER",
- "displayName": "Kustomer",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "advancedTransform",
- "setIdentityEmail",
- "disableEmailAsTrackingProperty",
- "genericPage",
- "genericScreen"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kustomer/metadata.json b/data/destinations/kustomer/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/kustomer/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/kustomer/schema.json b/data/destinations/kustomer/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/kustomer/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/kustomer/ui_config.json b/data/destinations/kustomer/ui_config.json
deleted file mode 100644
index 68e19b7ba..000000000
--- a/data/destinations/kustomer/ui_config.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. c59e3838caa934b535c1fd342dfds23452dfcccf95c16787304e7a0c0e8051b326451bb2",
- "secret": true,
- "footerNote": "API key required to authenticate requests."
- }
- ]
- },
- {
- "title": "Tracking Events Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable advanced Kustomer transformations",
- "value": "advancedTransform",
- "default": true,
- "footerNote": "When advanced transformation is enabled, Rudderstack will handle Kustomer Tracking API nuances on top of Vanilla transformation. Please check Docs for more information"
- },
- {
- "type": "checkbox",
- "label": "Add email as tracking identity",
- "value": "setIdentityEmail",
- "default": false,
- "footerNote": "When this option is enabled, Rudderstack will add email as a tracking identity for Kustomer track call"
- },
- {
- "type": "checkbox",
- "label": "Disable email as a tracking property",
- "value": "disableEmailAsTrackingProperty",
- "default": false,
- "footerNote": "When this option is enabled, Rudderstack will NOT add email as a tracking property for Kustomer track call"
- },
- {
- "type": "checkbox",
- "label": "Enable generic title for Page events",
- "value": "genericPage",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Enable generic title for Screen events",
- "value": "genericScreen",
- "default": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/lambda/db_config.json b/data/destinations/lambda/db_config.json
deleted file mode 100644
index 207a4a6d4..000000000
--- a/data/destinations/lambda/db_config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "LAMBDA",
- "displayName": "AWS Lambda",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "amp",
- "android",
- "cordova",
- "cloud",
- "flutter",
- "ios",
- "reactnative",
- "unity",
- "warehouse",
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track",
- "alias",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "region",
- "iamRoleARN",
- "accessKeyId",
- "accessKey",
- "lambda",
- "enableBatchInput",
- "clientContext",
- "roleBasedAuth",
- "maxBatchSize"
- ]
- },
- "secretKeys": ["accessKeyId", "accessKey"]
- }
-}
diff --git a/data/destinations/lambda/metadata.json b/data/destinations/lambda/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/lambda/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lambda/schema.json b/data/destinations/lambda/schema.json
deleted file mode 100644
index 8594e2f0b..000000000
--- a/data/destinations/lambda/schema.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "region",
- "lambda"
- ],
- "properties": {
- "accessKeyId": {
- "type": "string"
- },
- "accessKey": {
- "type": "string"
- },
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "region": {
- "type": "string"
- },
- "lambda": {
- "type": "string"
- },
- "enableBatchInput": {
- "type": "boolean"
- },
- "maxBatchSize": {
- "type": "string",
- "pattern": "^$|^[1-9]\\d*$"
- },
- "clientContext": {
- "type": "string"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/launchdarkly/db_config.json b/data/destinations/launchdarkly/db_config.json
deleted file mode 100644
index 43d6eaa95..000000000
--- a/data/destinations/launchdarkly/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "LAUNCHDARKLY",
- "displayName": "LaunchDarkly",
- "config": {
- "saveDestinationResponse": true,
- "includeKeys": [
- "clientSideId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "anonymousUsersSharedKey"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "alias"
- ],
- "destConfig": {
- "defaultConfig": [
- "clientSideId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "anonymousUsersSharedKey"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/launchdarkly/metadata.json b/data/destinations/launchdarkly/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/launchdarkly/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/launchdarkly/schema.json b/data/destinations/launchdarkly/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/launchdarkly/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/leanplum/db_config.json b/data/destinations/leanplum/db_config.json
deleted file mode 100644
index 498c39ada..000000000
--- a/data/destinations/leanplum/db_config.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "LEANPLUM",
- "displayName": "Leanplum",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "applicationId",
- "clientKey",
- "isDevelop",
- "useNativeSDKToSend",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "applicationId",
- "clientKey",
- "isDevelop",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK",
- "useNativeSDKToSend"
- ],
- "ios": [
- "useNativeSDK",
- "useNativeSDKToSend"
- ],
- "flutter": [
- "useNativeSDK",
- "useNativeSDKToSend"
- ]
- },
- "secretKeys": [
- "clientKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/leanplum/metadata.json b/data/destinations/leanplum/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/leanplum/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/leanplum/schema.json b/data/destinations/leanplum/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/leanplum/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/leanplum/ui_config.json b/data/destinations/leanplum/ui_config.json
deleted file mode 100644
index 68a3f29b6..000000000
--- a/data/destinations/leanplum/ui_config.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Application ID",
- "value": "applicationId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Application ID",
- "required": true,
- "placeholder": "e.g: ABCDEFG"
- },
- {
- "type": "textInput",
- "label": "Client Key",
- "value": "clientKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Client Key",
- "required": true,
- "placeholder": "e.g: ABCDEFG",
- "secret": true
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Initialize Native SDK to send automated events",
- "value": "useNativeSDK",
- "default": true
- },
- {
- "type": "checkbox",
- "label": "Use device-mode to send user generated events",
- "value": "useNativeSDKToSend",
- "default": false
- }
- ]
- },
- {
- "title": "Development Mode",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use in Development Environment",
- "value": "isDevelop",
- "default": false
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/linkedin_insight_tag/db_config.json b/data/destinations/linkedin_insight_tag/db_config.json
deleted file mode 100644
index 1e76de37a..000000000
--- a/data/destinations/linkedin_insight_tag/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "LINKEDIN_INSIGHT_TAG",
- "displayName": "Linkedin Insight Tag",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "partnerId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "eventToConversionIdMap"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "partnerId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "eventToConversionIdMap"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/linkedin_insight_tag/metadata.json b/data/destinations/linkedin_insight_tag/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/linkedin_insight_tag/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/linkedin_insight_tag/schema.json b/data/destinations/linkedin_insight_tag/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/linkedin_insight_tag/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/livechat/db_config.json b/data/destinations/livechat/db_config.json
deleted file mode 100644
index 87b548795..000000000
--- a/data/destinations/livechat/db_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "LIVECHAT",
- "displayName": "livechat",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "licenseId",
- "recordLiveChatEvents",
- "updateEventNames",
- "eventsToStandard",
- "eventsList",
- "eventFilteringOption",
- "blacklistedEvents",
- "whitelistedEvents"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "licenseId",
- "recordLiveChatEvents",
- "updateEventNames",
- "eventsToStandard",
- "eventFilteringOption",
- "eventsList",
- "blacklistedEvents",
- "whitelistedEvents"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "licenseId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/livechat/metadata.json b/data/destinations/livechat/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/livechat/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/livechat/schema.json b/data/destinations/livechat/schema.json
deleted file mode 100644
index 62744490a..000000000
--- a/data/destinations/livechat/schema.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "licenseId"
- ],
- "type": "object",
- "properties": {
- "licenseId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "recordLiveChatEvents": {
- "type": "boolean"
- },
- "eventsList": {
- "type": "string",
- "pattern": "^(onReady|onAvailabilityChanged|onVisibilityChanged|onCustomerStatusChanged|onNewEvent|onFormSubmitted|onRatingSubmitted|onGreetingDisplayed|onGreetingHidden|onRichMessageButtonClicked)$"
- },
- "updateEventNames": {
- "type": "boolean"
- },
- "eventsToStandard": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lotame/db_config.json b/data/destinations/lotame/db_config.json
deleted file mode 100644
index 8a7af0c64..000000000
--- a/data/destinations/lotame/db_config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "LOTAME",
- "displayName": "Lotame",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "bcpUrlSettingsPixel",
- "bcpUrlSettingsIframe",
- "dspUrlSettingsPixel",
- "dspUrlSettingsIframe",
- "mappings",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "amp"
- ],
- "destConfig": {
- "defaultConfig": [
- "bcpUrlSettingsPixel",
- "bcpUrlSettingsIframe",
- "dspUrlSettingsPixel",
- "dspUrlSettingsIframe",
- "mappings",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ],
- "amp": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lotame/metadata.json b/data/destinations/lotame/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/lotame/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lotame/schema.json b/data/destinations/lotame/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/lotame/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/lotame_mobile/db_config.json b/data/destinations/lotame_mobile/db_config.json
deleted file mode 100644
index d04faee83..000000000
--- a/data/destinations/lotame_mobile/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "LOTAME_MOBILE",
- "displayName": "Lotame Mobile",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "bcpUrlSettingsPixel",
- "dspUrlSettingsPixel",
- "mappings",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios"
- ],
- "destConfig": {
- "defaultConfig": [
- "bcpUrlSettingsPixel",
- "dspUrlSettingsPixel",
- "mappings",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lotame_mobile/metadata.json b/data/destinations/lotame_mobile/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/lotame_mobile/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lotame_mobile/schema.json b/data/destinations/lotame_mobile/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/lotame_mobile/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/lotame_mobile/ui_config.json b/data/destinations/lotame_mobile/ui_config.json
deleted file mode 100644
index fb99ff3a4..000000000
--- a/data/destinations/lotame_mobile/ui_config.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "BCP Url Settings",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "bcpUrlSettingsPixel",
- "customFields": [
- {
- "type": "textInput",
- "label": "BCP Url Template (Pixel)",
- "value": "bcpUrlTemplate",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid BCP Url Template (Pixel)",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- }
- ]
- }
- ]
- },
- {
- "title": "DSP Url Settings",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "dspUrlSettingsPixel",
- "customFields": [
- {
- "type": "textInput",
- "label": "DSP Url Template (Pixel)",
- "value": "dspUrlTemplate",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid DSP Url Template (Pixel)",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- }
- ]
- }
- ]
- },
- {
- "title": "Map all the fields: ",
- "fields": [
- {
- "type": "dynamicForm",
- "labelLeft": "Placeholder",
- "labelRight": "Value",
- "keyLeft": "key",
- "keyRight": "value",
- "placeholderLeft": "e.g: Client ID",
- "placeholderRight": "e.g: 123456",
- "value": "mappings"
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "defaultCheckbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/lytics/db_config.json b/data/destinations/lytics/db_config.json
deleted file mode 100644
index f1b427d84..000000000
--- a/data/destinations/lytics/db_config.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "name": "LYTICS",
- "displayName": "Lytics",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [
- "accountId",
- "apiKey",
- "stream",
- "blockload",
- "loadid",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "stream",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "accountId",
- "blockload",
- "loadid",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lytics/metadata.json b/data/destinations/lytics/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/lytics/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/lytics/schema.json b/data/destinations/lytics/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/lytics/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/mailchimp/db_config.json b/data/destinations/mailchimp/db_config.json
deleted file mode 100644
index f008653b3..000000000
--- a/data/destinations/mailchimp/db_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "MAILCHIMP",
- "displayName": "Mailchimp",
- "config": {
- "supportsVisualMapper": true,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "audienceId",
- "datacenterId",
- "enableMergeFields"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mailchimp/metadata.json b/data/destinations/mailchimp/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/mailchimp/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mailchimp/schema.json b/data/destinations/mailchimp/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/mailchimp/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/mailchimp/ui_config.json b/data/destinations/mailchimp/ui_config.json
deleted file mode 100644
index 5aaf6fc91..000000000
--- a/data/destinations/mailchimp/ui_config.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Mailchimp Api Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Mailchimp Api Key",
- "required": true,
- "placeholder": "e.g: 94f71917dald93kf897449b0c90caa4c-us20"
- },
- {
- "type": "textInput",
- "label": "Mailchimp Audience Id",
- "value": "audienceId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Mailchimp Audience Id",
- "required": true,
- "placeholder": "e.g: dn42a32d30"
- },
- {
- "type": "textInput",
- "label": "Mailchimp DataCenter Id",
- "value": "datacenterId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Mailchimp DataCenter Id",
- "required": true,
- "placeholder": "e.g: us20"
- }
- ]
- },
- {
- "title": "2. Event Map Setting",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable merge fields",
- "value": "enableMergeFields",
- "default": false,
- "footerNote": "It is recomended to set this to on as it will help to add merge_fields while updating a subscriber."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/mailjet/db_config.json b/data/destinations/mailjet/db_config.json
deleted file mode 100644
index 346614d2f..000000000
--- a/data/destinations/mailjet/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "MAILJET",
- "displayName": "Mailjet",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "apiSecret",
- "listId",
- "contactPropertiesMapping"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": ["identify"],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "apiSecret",
- "listId",
- "contactPropertiesMapping"
- ]
- },
- "secretKeys": ["apiSecret"]
- }
-}
diff --git a/data/destinations/mailmodo/db_config.json b/data/destinations/mailmodo/db_config.json
deleted file mode 100644
index 2f77a7a92..000000000
--- a/data/destinations/mailmodo/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "MAILMODO",
- "displayName": "Mailmodo",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "listName"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "listName"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mailmodo/metadata.json b/data/destinations/mailmodo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/mailmodo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mailmodo/schema.json b/data/destinations/mailmodo/schema.json
deleted file mode 100644
index af7b86b98..000000000
--- a/data/destinations/mailmodo/schema.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "listName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mailmodo/ui_config.json b/data/destinations/mailmodo/ui_config.json
deleted file mode 100644
index 7b8d90490..000000000
--- a/data/destinations/mailmodo/ui_config.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid MailModo API Key",
- "required": true,
- "placeholder": "e.g. L9DFHY-PTF4B4Q-PH3NY7E-LPYBX0Q",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "List Name",
- "value": "listName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid List Name",
- "required": false,
- "placeholder": "e.g. rudderstack",
- "secret": false,
- "footerNote": "Name of the list where contacts should be added. If not provided, \u201cRudderstack\u201d is taken as the default name. Only applicable for the identify call"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/marketo/db_config.json b/data/destinations/marketo/db_config.json
deleted file mode 100644
index 9a5bf35c6..000000000
--- a/data/destinations/marketo/db_config.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "name": "MARKETO",
- "displayName": "Marketo",
- "config": {
- "supportsVisualMapper": true,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "clientId",
- "clientSecret",
- "trackAnonymousEvents",
- "createIfNotExist",
- "customActivityEventMap",
- "customActivityPropertyMap",
- "customActivityPrimaryKeyMap",
- "leadTraitMapping"
- ]
- },
- "secretKeys": [
- "clientSecret"
- ]
- },
- "responseRules": {
- "responseType": "JSON",
- "rules": {
- "retryable": [
- {
- "success": "false",
- "errors.0.code": 600
- },
- {
- "success": "false",
- "errors.0.code": 601
- },
- {
- "success": "false",
- "errors.0.code": 602
- },
- {
- "success": "false",
- "errors.0.code": 604
- },
- {
- "success": "false",
- "errors.0.code": 611
- }
- ],
- "abortable": [
- {
- "success": "false",
- "errors.0.code": 603
- },
- {
- "success": "false",
- "errors.0.code": 605
- },
- {
- "success": "false",
- "errors.0.code": 609
- },
- {
- "success": "false",
- "errors.0.code": 610
- }
- ],
- "throttled": [
- {
- "success": "false",
- "errors.0.code": 502
- },
- {
- "success": "false",
- "errors.0.code": 606
- },
- {
- "success": "false",
- "errors.0.code": 607
- },
- {
- "success": "false",
- "errors.0.code": 608
- },
- {
- "success": "false",
- "errors.0.code": 615
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/marketo/metadata.json b/data/destinations/marketo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/marketo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/marketo/schema.json b/data/destinations/marketo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/marketo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/marketo/ui_config.json b/data/destinations/marketo/ui_config.json
deleted file mode 100644
index ba1f32c70..000000000
--- a/data/destinations/marketo/ui_config.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Munchkin Account Id",
- "value": "accountId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Munchkin Account Id",
- "required": true,
- "footerNote": "Your Marketo Accound ID from Admin settings section",
- "placeholder": "e.g: 585-AXP-446"
- },
- {
- "type": "textInput",
- "label": "Client ID",
- "value": "clientId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Client ID",
- "required": true,
- "placeholder": "e.g: 53b1934e-51dd-4599-b24b-92612c71515f",
- "footerNote": "Your REST API Client ID"
- },
- {
- "type": "textInput",
- "label": "Client Secret",
- "value": "clientSecret",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Client Secret",
- "required": true,
- "placeholder": "e.g: oxzXtNhcuw9YGsdhplKUeEMi8765dsfw",
- "secret": true,
- "footerNote": "Your REST API Client Secret"
- }
- ]
- },
- {
- "title": "Custom Activity Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Track anonymous events",
- "value": "trackAnonymousEvents",
- "default": false,
- "footerNote": "If turned on, you need to send userId with every track call"
- },
- {
- "type": "checkbox",
- "label": "Create Lead if it does not exist",
- "value": "createIfNotExist",
- "default": true,
- "footerNote": "If turned on, we will create a new lead if the user is not present"
- },
- {
- "type": "dynamicForm",
- "label": "Map events to Marketo Activity ID",
- "labelLeft": "Event Name",
- "labelRight": "Activity ID",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Clicked",
- "placeholderRight": "e.g: 100001",
- "value": "customActivityEventMap",
- "footerNote": "You can find the Activity ID in your Admin section under Custom Activity on your Marketo dashboard"
- },
- {
- "type": "dynamicForm",
- "label": "Map your event properties to Marketo custom activity's field",
- "labelLeft": "Event Property",
- "labelRight": "Marketo Custom Activity field",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: name",
- "placeholderRight": "e.g: productName",
- "value": "customActivityPropertyMap",
- "footerNote": "The value passed in Event Property name here will be sent in the corresponding mapped field."
- },
- {
- "type": "dynamicForm",
- "label": "Map event name to Marketo primary key",
- "labelLeft": "Event Name",
- "labelRight": "Marketo Primary Key",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Clicked",
- "placeholderRight": "e.g: name",
- "value": "customActivityPrimaryKeyMap",
- "footerNote": "Map your event name to the desired primary key field."
- }
- ]
- },
- {
- "title": "Lead Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map your traits to Marketo custom fields",
- "labelLeft": "Traits name",
- "labelRight": "Custom field api name",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: leadScore",
- "placeholderRight": "e.g: customLeadScore",
- "value": "leadTraitMapping",
- "footerNote": "Map your user traits to your desired custom field's api name."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/marketo_bulk_upload/db_config.json b/data/destinations/marketo_bulk_upload/db_config.json
deleted file mode 100644
index 0a0b9bf52..000000000
--- a/data/destinations/marketo_bulk_upload/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "MARKETO_BULK_UPLOAD",
- "displayName": "Marketo Lead Import",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "destConfig": {
- "defaultConfig": [
- "clientId",
- "clientSecret",
- "munchkinId",
- "deDuplicationField",
- "columnFieldsMapping",
- "uploadInterval"
- ]
- },
- "secretKeys": [
- "clientId",
- "clientSecret"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/marketo_bulk_upload/metadata.json b/data/destinations/marketo_bulk_upload/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/marketo_bulk_upload/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/marketo_bulk_upload/schema.json b/data/destinations/marketo_bulk_upload/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/marketo_bulk_upload/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/marketo_bulk_upload/ui_config.json b/data/destinations/marketo_bulk_upload/ui_config.json
deleted file mode 100644
index d5e372987..000000000
--- a/data/destinations/marketo_bulk_upload/ui_config.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Munchkin Account Id",
- "value": "munchkinId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Munchkin Account Id",
- "required": true,
- "footerNote": "Your Marketo Accound ID from Admin settings section",
- "placeholder": "e.g: 585-AXP-446"
- },
- {
- "type": "textInput",
- "label": "Client ID",
- "value": "clientId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Client ID",
- "required": true,
- "placeholder": "e.g: 53b1934e-51dd-4599-b24b-92612c71515f",
- "footerNote": "Your REST API Client ID"
- },
- {
- "type": "textInput",
- "label": "Client Secret",
- "value": "clientSecret",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Client Secret",
- "required": true,
- "placeholder": "e.g: oxzXtNhcuw9YGsdhplKUeEMi8765dsfw",
- "secret": true,
- "footerNote": "Your REST API Client Secret"
- },
- {
- "type": "textInput",
- "label": "De-duplication Field",
- "value": "deDuplicationField",
- "required": false,
- "placeholder": "e.g: email",
- "secret": false,
- "footerNote": "RudderStack will use this Marketo field name for de-duplication & this field should be present in column field mapping."
- },
- {
- "type": "singleSelect",
- "label": "Upload Interval",
- "value": "uploadInterval",
- "options": [
- {
- "name": "Every 10 minutes",
- "value": "10"
- },
- {
- "name": "Every 20 minutes",
- "value": "20"
- },
- {
- "name": "Every 30 minutes",
- "value": "30"
- }
- ],
- "defaultOption": {
- "name": "Every 10 minutes",
- "value": "10"
- }
- }
- ]
- },
- {
- "title": "Column Fields Mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map your traits to Marketo column fields",
- "labelRight": "Marketo field name",
- "labelLeft": "RudderStack trait name",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: leadScore",
- "placeholderRight": "e.g: customLeadScore",
- "value": "columnFieldsMapping",
- "footerNote": "Map your user's traits to the allowed standard fields in Marketo"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/marketo_static_list/db_config.json b/data/destinations/marketo_static_list/db_config.json
deleted file mode 100644
index 0c5b3fafb..000000000
--- a/data/destinations/marketo_static_list/db_config.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "MARKETO_STATIC_LIST",
- "displayName": "Marketo Static List",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": ["clientId", "clientSecret", "accountId", "staticListId"],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "cloud",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "audiencelist"
- ],
- "destConfig": {
- "defaultConfig": ["clientId", "clientSecret", "accountId", "staticListId"]
- },
- "secretKeys": ["clientId", "clientSecret", "accountId"]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/marketo_static_list/metadata.json b/data/destinations/marketo_static_list/metadata.json
deleted file mode 100644
index d771a284b..000000000
--- a/data/destinations/marketo_static_list/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
diff --git a/data/destinations/marketo_static_list/schema.json b/data/destinations/marketo_static_list/schema.json
deleted file mode 100644
index f72a23202..000000000
--- a/data/destinations/marketo_static_list/schema.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "clientId",
- "clientSecret",
- "accountId",
- "staticListId"
- ],
- "properties": {
- "clientId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "clientSecret": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "accountId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "staticListId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- }
- }
- }
-}
diff --git a/data/destinations/matomo/db_config.json b/data/destinations/matomo/db_config.json
deleted file mode 100644
index e5e8f7dfa..000000000
--- a/data/destinations/matomo/db_config.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "MATOMO",
- "displayName": "Matomo",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "serverUrl",
- "siteId",
- "eventsMapToGoalId",
- "eventsToStandard",
- "trackAllContentImpressions",
- "trackVisibleContentImpressions",
- "checkOnScroll",
- "timeIntervalInMs",
- "logAllContentBlocksOnPage",
- "enableHeartBeatTimer",
- "activeTimeInseconds",
- "enableLinkTracking",
- "disablePerformanceTracking",
- "enableCrossDomainLinking",
- "setCrossDomainLinkingTimeout",
- "timeout",
- "getCrossDomainLinkingUrlParameter",
- "disableBrowserFeatureDetection"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "serverUrl",
- "siteId",
- "eventsMapToGoalId",
- "eventsToStandard",
- "trackAllContentImpressions",
- "trackVisibleContentImpressions",
- "checkOnScroll",
- "timeIntervalInMs",
- "logAllContentBlocksOnPage",
- "enableHeartBeatTimer",
- "activeTimeInseconds",
- "enableLinkTracking",
- "disablePerformanceTracking",
- "enableCrossDomainLinking",
- "setCrossDomainLinkingTimeout",
- "timeout",
- "getCrossDomainLinkingUrlParameter",
- "disableBrowserFeatureDetection"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "serverUrl",
- "siteId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/matomo/metadata.json b/data/destinations/matomo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/matomo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/matomo/schema.json b/data/destinations/matomo/schema.json
deleted file mode 100644
index 4885a4aa8..000000000
--- a/data/destinations/matomo/schema.json
+++ /dev/null
@@ -1,114 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "siteId",
- "serverUrl"
- ],
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "siteId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,10})$"
- },
- "eventsMapToGoalId": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventsToStandard": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "trackAllContentImpressions": {
- "type": "boolean"
- },
- "trackVisibleContentImpressions": {
- "type": "boolean"
- },
- "checkOnScroll": {
- "type": "boolean"
- },
- "timeIntervalInMs": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- },
- "logAllContentBlocksOnPage": {
- "type": "boolean"
- },
- "enableHeartBeatTimer": {
- "type": "boolean"
- },
- "activeTimeInseconds": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- },
- "enableLinkTracking": {
- "type": "boolean"
- },
- "disablePerformanceTracking": {
- "type": "boolean"
- },
- "enableCrossDomainLinking": {
- "type": "boolean"
- },
- "setCrossDomainLinkingTimeout": {
- "type": "boolean"
- },
- "timeout": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- },
- "getCrossDomainLinkingUrlParameter": {
- "type": "boolean"
- },
- "disableBrowserFeatureDetection": {
- "type": "boolean"
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mautic/db_config.json b/data/destinations/mautic/db_config.json
deleted file mode 100644
index ad16c5cd2..000000000
--- a/data/destinations/mautic/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "MAUTIC",
- "displayName": "Mautic",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "userName",
- "password",
- "subDomainName",
- "lookUpField"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "userName",
- "password",
- "subDomainName",
- "lookUpField"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mautic/metadata.json b/data/destinations/mautic/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/mautic/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mautic/schema.json b/data/destinations/mautic/schema.json
deleted file mode 100644
index 3ee0be140..000000000
--- a/data/destinations/mautic/schema.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "userName",
- "password",
- "subDomainName",
- "lookUpField"
- ],
- "properties": {
- "userName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "subDomainName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "lookupField": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mautic/ui_config.json b/data/destinations/mautic/ui_config.json
deleted file mode 100644
index 36b26f2fa..000000000
--- a/data/destinations/mautic/ui_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Username",
- "value": "userName",
- "required": true,
- "placeholder": "e.g: abc@test.com",
- "footerNote": "Enter the Mautic username used for authentication."
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "required": true,
- "secret": true,
- "placeholder": "123fgh678",
- "footerNote": "Enter the password associated with the above username."
- },
- {
- "type": "textInput",
- "label": "Sub-Domain Name",
- "value": "subDomainName",
- "required": true,
- "secret": true,
- "placeholder": "e.g: testdomain",
- "footerNote": "Enter the subdomain name of your Mautic instance."
- },
- {
- "type": "textInput",
- "label": "Mautic property name to be used as lookup field",
- "value": "lookUpField",
- "required": true,
- "placeholder": "e.g: email",
- "footerNote": "Enter a unique Mautic user property to be used for contact lookup. The provided lookup field key will be retrieved from the traits."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/microsoft_clarity/schema.json b/data/destinations/microsoft_clarity/schema.json
deleted file mode 100644
index 540896c88..000000000
--- a/data/destinations/microsoft_clarity/schema.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": ["projectId"],
- "properties": {
- "projectId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "cookieConsent": {
- "type": "boolean"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/data/destinations/minio/db_config.json b/data/destinations/minio/db_config.json
deleted file mode 100644
index 8ec86ee63..000000000
--- a/data/destinations/minio/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "MINIO",
- "displayName": "MinIO",
- "config": {
- "transformAt": "none",
- "transformAtV1": "none",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "endPoint",
- "accessKeyID",
- "secretAccessKey",
- "bucketName",
- "prefix",
- "useSSL"
- ]
- },
- "secretKeys": [
- "accessKeyID",
- "secretAccessKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/minio/metadata.json b/data/destinations/minio/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/minio/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/minio/schema.json b/data/destinations/minio/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/minio/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/minio/ui_config.json b/data/destinations/minio/ui_config.json
deleted file mode 100644
index 2a831d7d8..000000000
--- a/data/destinations/minio/ui_config.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "MinIO Endpoint",
- "value": "endPoint",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Endpoint",
- "required": true,
- "placeholder": "e.g: play.min.io:9000"
- },
- {
- "type": "textInput",
- "label": "MinIO Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Access Key ID",
- "required": true,
- "placeholder": "e.g: Q3AM3UQ867SPQQA43P2F",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "MinIO Secret Access Key",
- "value": "secretAccessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Secret Access Key",
- "required": true,
- "placeholder": "e.g: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "MINIO Bucket Name",
- "value": "bucketName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MINIO Bucket Name",
- "required": true,
- "placeholder": "e.g: minio-event-logs"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "checkbox",
- "label": "Use SSL for connection",
- "value": "useSSL",
- "default": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/moengage/db_config.json b/data/destinations/moengage/db_config.json
deleted file mode 100644
index 53c8625c5..000000000
--- a/data/destinations/moengage/db_config.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "MOENGAGE",
- "displayName": "MoEngage",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiId",
- "region",
- "debug",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiId",
- "apiKey",
- "region",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "debug",
- "oneTrustCookieCategories"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "reactnative": [
- "useNativeSDK"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/moengage/metadata.json b/data/destinations/moengage/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/moengage/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/moengage/schema.json b/data/destinations/moengage/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/moengage/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/monday/db_config.json b/data/destinations/monday/db_config.json
deleted file mode 100644
index 2a6537671..000000000
--- a/data/destinations/monday/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "MONDAY",
- "displayName": "Monday",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiToken",
- "boardId",
- "groupTitle",
- "columnToPropertyMapping",
- "whitelistedEvents"
- ]
- },
- "secretKeys": [
- "apiToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/monday/metadata.json b/data/destinations/monday/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/monday/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/monday/schema.json b/data/destinations/monday/schema.json
deleted file mode 100644
index d684a77fa..000000000
--- a/data/destinations/monday/schema.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiToken",
- "boardId"
- ],
- "properties": {
- "apiToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$"
- },
- "boardId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "groupTitle": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "columnToPropertyMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/monday/ui_config.json b/data/destinations/monday/ui_config.json
deleted file mode 100644
index 484286133..000000000
--- a/data/destinations/monday/ui_config.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiToken",
- "regex": "^(.{1,300})$",
- "regexErrorMessage": "Invalid API Token",
- "required": true,
- "placeholder": "e.g. eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
- "secret": true,
- "footerNote": "Your API Token"
- }
- ]
- },
- {
- "title": "Board details",
- "fields": [
- {
- "type": "textInput",
- "label": "Board ID",
- "value": "boardId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Board Id",
- "required": true,
- "placeholder": "e.g. 3121222335",
- "secret": false,
- "footerNote": "Your Board Id"
- },
- {
- "type": "textInput",
- "label": "Group Title",
- "value": "groupTitle",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Group Title",
- "required": false,
- "placeholder": "e.g. Active Deals",
- "secret": false,
- "footerNote": "Group name of the board in which item will be created"
- }
- ]
- },
- {
- "title": "Column to property mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Mapping the column name with property name",
- "labelLeft": "Monday Column Name",
- "labelRight": "RudderStack Property Name",
- "value": "columnToPropertyMapping",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Deal Length",
- "placeholderRight": "e.g: days"
- }
- ]
- },
- {
- "title": "Client side events filtering",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "footerNote": "Events not included in the Allowlist will be discarded.",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/monetate/db_config.json b/data/destinations/monetate/db_config.json
deleted file mode 100644
index 2008f1293..000000000
--- a/data/destinations/monetate/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "MONETATE",
- "displayName": "Monetate",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "cloud",
- "warehouse",
- "reactnative",
- "unity",
- "amp",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "monetateChannel",
- "retailerShortName"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/monetate/metadata.json b/data/destinations/monetate/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/monetate/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/monetate/schema.json b/data/destinations/monetate/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/monetate/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/monetate/ui_config.json b/data/destinations/monetate/ui_config.json
deleted file mode 100644
index 4c367c9d7..000000000
--- a/data/destinations/monetate/ui_config.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Monetate Channel",
- "value": "monetateChannel",
- "required": true,
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Monetate Channel"
- },
- {
- "type": "textInput",
- "label": "Retailer Short Name",
- "value": "retailerShortName",
- "required": true,
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Retailer Short Name"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/mouseflow/db_config.json b/data/destinations/mouseflow/db_config.json
deleted file mode 100644
index 6527a2f1d..000000000
--- a/data/destinations/mouseflow/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "MOUSEFLOW",
- "displayName": "Mouseflow",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "websiteId",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "websiteId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "websiteId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mouseflow/metadata.json b/data/destinations/mouseflow/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/mouseflow/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mouseflow/schema.json b/data/destinations/mouseflow/schema.json
deleted file mode 100644
index c7bca20af..000000000
--- a/data/destinations/mouseflow/schema.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "websiteId"
- ],
- "properties": {
- "websiteId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mp/db_config.json b/data/destinations/mp/db_config.json
deleted file mode 100644
index ef822d6dd..000000000
--- a/data/destinations/mp/db_config.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "name": "MP",
- "displayName": "Mixpanel",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "token",
- "groupKeySettings",
- "apiSecret",
- "dataResidency",
- "people",
- "setAllTraitsByDefault",
- "superProperties",
- "peopleProperties",
- "eventIncrements",
- "propIncrements",
- "consolidatedPageCalls",
- "trackCategorizedPages",
- "trackNamedPages",
- "sourceName",
- "crossSubdomainCookie",
- "persistence",
- "secureCookie",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "useNewMapping"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "alias",
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "token",
- "groupKeySettings",
- "apiSecret",
- "dataResidency",
- "people",
- "setAllTraitsByDefault",
- "superProperties",
- "peopleProperties",
- "eventIncrements",
- "propIncrements",
- "consolidatedPageCalls",
- "trackCategorizedPages",
- "trackNamedPages",
- "sourceName",
- "crossSubdomainCookie",
- "persistence",
- "secureCookie",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "useNewMapping",
- "serviceAccountUserName",
- "serviceAccountSecret",
- "projectId"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "token"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mp/metadata.json b/data/destinations/mp/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/mp/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mp/schema.json b/data/destinations/mp/schema.json
deleted file mode 100644
index e25348676..000000000
--- a/data/destinations/mp/schema.json
+++ /dev/null
@@ -1,161 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "token"
- ],
- "properties": {
- "token": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "apiSecret": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "dataResidency": {
- "type": "string",
- "pattern": "^(us|eu)$"
- },
- "people": {
- "type": "boolean"
- },
- "setAllTraitsByDefault": {
- "type": "boolean"
- },
- "consolidatedPageCalls": {
- "type": "boolean"
- },
- "trackCategorizedPages": {
- "type": "boolean"
- },
- "trackNamedPages": {
- "type": "boolean"
- },
- "sourceName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "crossSubdomainCookie": {
- "type": "boolean"
- },
- "persistence": {
- "type": "string",
- "pattern": "^(none|cookie|localStorage)$"
- },
- "secureCookie": {
- "type": "boolean"
- },
- "superProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "property": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "peopleProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "property": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventIncrements": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "property": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "propIncrements": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "property": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "groupKeySettings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "groupKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mssql/db_config.json b/data/destinations/mssql/db_config.json
deleted file mode 100644
index 0963a45cf..000000000
--- a/data/destinations/mssql/db_config.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "MSSQL",
- "displayName": "Microsoft SQL Server",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "host",
- "database",
- "user",
- "password",
- "port",
- "sslMode",
- "namespace",
- "bucketProvider",
- "bucketName",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "accountName",
- "accountKey",
- "useSASTokens",
- "sasToken",
- "credentials",
- "secretAccessKey",
- "useSSL",
- "containerName",
- "endPoint",
- "syncFrequency",
- "syncStartAt",
- "excludeWindow",
- "useRudderStorage"
- ]
- },
- "secretKeys": [
- "password",
- "accessKeyID",
- "accessKey",
- "accountKey",
- "sasToken",
- "secretAccessKey",
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mssql/metadata.json b/data/destinations/mssql/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/mssql/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mssql/schema.json b/data/destinations/mssql/schema.json
deleted file mode 100644
index 13cffd737..000000000
--- a/data/destinations/mssql/schema.json
+++ /dev/null
@@ -1,278 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "host",
- "database",
- "user",
- "password",
- "port",
- "sslMode",
- "syncFrequency",
- "useRudderStorage"
- ],
- "properties": {
- "host": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "database": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "user": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "port": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "sslMode": {
- "type": "string",
- "pattern": "^(disable|true|false)$"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": [
- "excludeWindowStartTime",
- "excludeWindowEndTime"
- ],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "useRudderStorage": {
- "type": "boolean",
- "default": false
- },
- "bucketProvider": {
- "type": "string",
- "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "useRudderStorage"
- ]
- },
- "then": {
- "required": [
- "bucketProvider"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "S3"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- },
- "required": [
- "bucketName",
- "accessKeyID",
- "accessKey"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "GCS"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": [
- "bucketName",
- "credentials"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "AZURE_BLOB"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "containerName",
- "accountName"
- ],
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "accountKey"
- ]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": [
- "useSASTokens",
- "sasToken"
- ]
- }
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "MINIO"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "bucketProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "endPoint": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "secretAccessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "useSSL": {
- "type": "boolean"
- }
- },
- "required": [
- "bucketName",
- "endPoint",
- "accessKeyID",
- "secretAccessKey",
- "useSSL"
- ]
- }
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/mssql/ui_config.json b/data/destinations/mssql/ui_config.json
deleted file mode 100644
index d12fa6c6f..000000000
--- a/data/destinations/mssql/ui_config.json
+++ /dev/null
@@ -1,547 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid Host",
- "placeholder": "e.g: mssql.mydomain.com",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "database",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Database",
- "placeholder": "e.g: rudderdb",
- "required": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid User",
- "placeholder": "e.g: rudder",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "placeholder": "e.g: rudder-password",
- "regex": ".*",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Port",
- "placeholder": "1433",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "labelNote": "Schema name for the warehouse where the tables are created",
- "value": "namespace",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "regexErrorMessage": "Invalid Namespace",
- "required": false,
- "placeholder": "e.g: rudder-schema",
- "footerNote": "Default will be the source name"
- },
- {
- "type": "singleSelect",
- "label": "SSL Mode",
- "value": "sslMode",
- "options": [
- {
- "name": "disable",
- "value": "disable"
- },
- {
- "name": "true",
- "value": "true"
- },
- {
- "name": "false",
- "value": "false"
- }
- ],
- "defaultOption": {
- "name": "disable",
- "value": "disable"
- },
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- },
- {
- "type": "timeRangePicker",
- "label": "Exclude window (Optional)",
- "value": "excludeWindow",
- "startTime": {
- "label": "start time",
- "value": "excludeWindowStartTime"
- },
- "endTime": {
- "label": "end time",
- "value": "excludeWindowEndTime"
- },
- "options": {
- "omitSeconds": true,
- "minuteStep": 1
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- },
- {
- "title": "Object Storage Configuration",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use RudderStack managed object storage",
- "value": "useRudderStorage",
- "default": false,
- "footerNote": "Note: Only available for RudderStack managed data planes"
- },
- {
- "type": "singleSelect",
- "label": "Choose your Storage Provider",
- "value": "bucketProvider",
- "options": [
- {
- "name": "S3",
- "value": "S3"
- },
- {
- "name": "GCS",
- "value": "GCS"
- },
- {
- "name": "AZURE_BLOB",
- "value": "AZURE_BLOB"
- },
- {
- "name": "MINIO",
- "value": "MINIO"
- }
- ],
- "defaultOption": {
- "name": "MINIO",
- "value": "MINIO"
- },
- "required": true,
- "preRequisiteField": {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging S3 Storage Bucket Name",
- "labelNote": "S3 Bucket to store data before loading into Mssql",
- "value": "bucketName",
- "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
- "placeholder": "e.g: s3-event-logs",
- "required": true,
- "footerNote": "Please make sure the bucket exists in your S3"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging GCS Object Storage Bucket Name",
- "labelNote": "GCS Bucket to store data before loading into Mssql",
- "value": "bucketName",
- "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
- "placeholder": "e.g: gcs-event-logs",
- "required": true,
- "footerNote": "Please make sure the bucket exists in your GCS"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging Azure Blob Storage Container Name",
- "labelNote": "Container to store data before loading into Mssql",
- "value": "containerName",
- "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
- "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-event-logs",
- "footerNote": "Please make sure the container exists in your Azure Blob Storage"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging MINIO Storage Bucket Name",
- "labelNote": "MINIO Bucket to store data before loading into Mssql",
- "value": "bucketName",
- "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: minio-event-logs",
- "footerNote": "Please make sure the bucket exists in your MINIO"
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": true
- }
- ],
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "S3"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "AZURE_BLOB"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "GCS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MinIO Endpoint",
- "value": "endPoint",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Endpoint",
- "required": true,
- "placeholder": "e.g: play.min.io:9000"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MINIO Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "MINIO Secret Access Key",
- "value": "secretAccessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid MinIO Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key"
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "bucketProvider",
- "selectedValue": "MINIO"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use SSL for connection",
- "value": "useSSL",
- "default": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/new_relic/db_config.json b/data/destinations/new_relic/db_config.json
deleted file mode 100644
index 05f8bb438..000000000
--- a/data/destinations/new_relic/db_config.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "NEW_RELIC",
- "displayName": "New Relic",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "cdkEnabled": true,
- "includeKeys": [
- "accountId",
- "insertKey",
- "dataCenter",
- "customEventType",
- "sendDeviceContext",
- "sendUserIdanonymousId"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "insertKey",
- "dataCenter",
- "customEventType",
- "sendDeviceContext",
- "sendUserIdanonymousId"
- ]
- },
- "secretKeys": [
- "accountId",
- "insertKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/new_relic/metadata.json b/data/destinations/new_relic/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/new_relic/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/new_relic/schema.json b/data/destinations/new_relic/schema.json
deleted file mode 100644
index 9465a3c24..000000000
--- a/data/destinations/new_relic/schema.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "accountId",
- "insertKey"
- ],
- "properties": {
- "accountId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "insertKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "dataCenter": {
- "type": "string",
- "pattern": "^(us|eu)$"
- },
- "customEventType": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "sendDeviceContext": {
- "type": "boolean"
- },
- "sendUserIdanonymousId": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/new_relic/ui_config.json b/data/destinations/new_relic/ui_config.json
deleted file mode 100644
index 45e95980e..000000000
--- a/data/destinations/new_relic/ui_config.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Account ID",
- "value": "accountId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Account ID",
- "required": true,
- "placeholder": "e.g. 1234567",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Insert Key",
- "value": "insertKey",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Insert Key",
- "required": true,
- "placeholder": "e.g. zXvp6bWcSL3muCRuGrWyUA",
- "secret": true
- },
- {
- "type": "singleSelect",
- "label": "Data Center",
- "value": "dataCenter",
- "mode": "single",
- "options": [
- {
- "name": "US(standard)",
- "value": "us"
- },
- {
- "name": "EU",
- "value": "eu"
- }
- ],
- "defaultOption": {
- "name": "US(standard)",
- "value": "us"
- }
- }
- ]
- },
- {
- "title": "Other Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Custom Default Event Type",
- "value": "customEventType",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g. abcdef"
- },
- {
- "type": "checkbox",
- "label": "Send Device Context",
- "value": "sendDeviceContext",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Send UserId and AnonymousId",
- "value": "sendUserIdanonymousId",
- "default": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/ometria/db_config.json b/data/destinations/ometria/db_config.json
deleted file mode 100644
index e7a1bea7d..000000000
--- a/data/destinations/ometria/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "OMETRIA",
- "displayName": "Ometria",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "marketingOptin",
- "allowMarketing",
- "allowTransactional"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/ometria/metadata.json b/data/destinations/ometria/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/ometria/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/ometria/schema.json b/data/destinations/ometria/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/ometria/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/ometria/ui_config.json b/data/destinations/ometria/ui_config.json
deleted file mode 100644
index 5bd7e2fb2..000000000
--- a/data/destinations/ometria/ui_config.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
- "secret": true
- }
- ]
- },
- {
- "title": "Contact Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Marketing Optin",
- "value": "marketingOptin",
- "required": false,
- "placeholder": "Explicitly Opted Out",
- "options": [
- {
- "name": "Explicitly Opted Out",
- "value": "EXPLICITLY_OPTEDOUT"
- },
- {
- "name": "Not Specified",
- "value": "NOT_SPECIFIED"
- },
- {
- "name": "Explicitly Opted In",
- "value": "EXPLICITLY_OPTEDIN"
- }
- ],
- "defaultOption": {
- "name": "Explicitly Opted Out",
- "value": "EXPLICITLY_OPTEDOUT"
- }
- }
- ]
- },
- {
- "title": "SMS Channel Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Allow Transactional",
- "value": "allowTransactional",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Allow Marketing",
- "value": "allowMarketing",
- "default": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/one_signal/db_config.json b/data/destinations/one_signal/db_config.json
deleted file mode 100644
index e7712a501..000000000
--- a/data/destinations/one_signal/db_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "ONE_SIGNAL",
- "displayName": "OneSignal",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "group"
- ],
- "destConfig": {
- "defaultConfig": [
- "appId",
- "emailDeviceType",
- "smsDeviceType",
- "eventAsTags",
- "allowedProperties"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/one_signal/metadata.json b/data/destinations/one_signal/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/one_signal/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/one_signal/schema.json b/data/destinations/one_signal/schema.json
deleted file mode 100644
index 11ca9cdb8..000000000
--- a/data/destinations/one_signal/schema.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "appId"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "emailDeviceType": {
- "type": "boolean"
- },
- "smsDeviceType": {
- "type": "boolean"
- },
- "eventAsTags": {
- "type": "boolean"
- },
- "allowedProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "propertyName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/one_signal/ui_config.json b/data/destinations/one_signal/ui_config.json
deleted file mode 100644
index 2864a68d9..000000000
--- a/data/destinations/one_signal/ui_config.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "App Id",
- "value": "appId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid App Id",
- "required": true,
- "placeholder": "e.g. 7acc2c99-818c-4a28-b98e-6cd8a994da65",
- "secret": true,
- "footerNote": "Your OneSignal App Id"
- }
- ]
- },
- {
- "title": "Device Type",
- "fields": [
- {
- "type": "checkbox",
- "label": "Toggle on to add a device using email",
- "value": "emailDeviceType",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Toggle on to add a device using phone number",
- "value": "smsDeviceType",
- "default": false
- }
- ]
- },
- {
- "title": "Property Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Toggle on to concatenate event name with properties",
- "value": "eventAsTags",
- "default": false
- },
- {
- "type": "dynamicCustomForm",
- "value": "allowedProperties",
- "label": "Allowed Property List",
- "customFields": [
- {
- "type": "textInput",
- "value": "propertyName",
- "required": false
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely/db_config.json b/data/destinations/optimizely/db_config.json
deleted file mode 100644
index 5bd8c4d76..000000000
--- a/data/destinations/optimizely/db_config.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "OPTIMIZELY",
- "displayName": "Optimizely Web",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "sendExperimentTrack",
- "sendExperimentTrackAsNonInteractive",
- "revenueOnlyOnOrderCompleted",
- "trackCategorizedPages",
- "trackNamedPages",
- "sendExperimentIdentify",
- "customCampaignProperties",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "sendExperimentTrack",
- "sendExperimentTrackAsNonInteractive",
- "revenueOnlyOnOrderCompleted",
- "trackCategorizedPages",
- "trackNamedPages",
- "sendExperimentIdentify",
- "customCampaignProperties",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely/metadata.json b/data/destinations/optimizely/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/optimizely/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely/schema.json b/data/destinations/optimizely/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/optimizely/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely_fullstack/db_config.json b/data/destinations/optimizely_fullstack/db_config.json
deleted file mode 100644
index b79adaadc..000000000
--- a/data/destinations/optimizely_fullstack/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "OPTIMIZELY_FULLSTACK",
- "displayName": "Optimizely Fullstack",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "trackKnownUsers",
- "nonInteraction",
- "listen",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios"
- ],
- "destConfig": {
- "defaultConfig": [
- "trackKnownUsers",
- "nonInteraction",
- "listen",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely_fullstack/metadata.json b/data/destinations/optimizely_fullstack/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/optimizely_fullstack/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely_fullstack/schema.json b/data/destinations/optimizely_fullstack/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/optimizely_fullstack/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/optimizely_fullstack/ui_config.json b/data/destinations/optimizely_fullstack/ui_config.json
deleted file mode 100644
index 305090b34..000000000
--- a/data/destinations/optimizely_fullstack/ui_config.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Only Track known users",
- "fields": [
- {
- "type": "checkbox",
- "label": "Track Known Users",
- "value": "trackKnownUsers",
- "required": false,
- "default": true
- }
- ]
- },
- {
- "title": "Sends the experiment and variation information",
- "fields": [
- {
- "type": "checkbox",
- "label": "Sends the experiment and variation information as properties on a track call",
- "value": "listen",
- "required": false,
- "default": true
- }
- ]
- },
- {
- "title": "Non-Interaction Event",
- "fields": [
- {
- "type": "checkbox",
- "label": "Specifies the Experiment Viewed as a non-interaction event for Google Analytics",
- "value": "nonInteraction",
- "required": false,
- "default": true
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "defaultCheckbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/pagerduty/metadata.json b/data/destinations/pagerduty/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/pagerduty/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pardot/metadata.json b/data/destinations/pardot/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/pardot/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pardot/schema.json b/data/destinations/pardot/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/pardot/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/pardot/ui_config.json b/data/destinations/pardot/ui_config.json
deleted file mode 100644
index af655bdd2..000000000
--- a/data/destinations/pardot/ui_config.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Business Unit Id",
- "value": "businessUnitId",
- "regex": ".*",
- "required": true,
- "placeholder": "0Uv2b000000k9tHUHT",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Campaign Id",
- "value": "campaignId",
- "regex": ".*",
- "required": true,
- "placeholder": "12345"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/pendo/db_config.json b/data/destinations/pendo/db_config.json
deleted file mode 100644
index b659c7b81..000000000
--- a/data/destinations/pendo/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "PENDO",
- "displayName": "Pendo",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pendo/metadata.json b/data/destinations/pendo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/pendo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pendo/schema.json b/data/destinations/pendo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/pendo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/persistiq/db_config.json b/data/destinations/persistiq/db_config.json
deleted file mode 100644
index e341b1d71..000000000
--- a/data/destinations/persistiq/db_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "PERSISTIQ",
- "displayName": "PersistIQ",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "cloud",
- "mobile",
- "android",
- "ios",
- "unity",
- "amp",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": ["identify", "group"],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "persistIqAttributesMapping"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
diff --git a/data/destinations/persistiq/metadata.json b/data/destinations/persistiq/metadata.json
deleted file mode 100644
index e217109c8..000000000
--- a/data/destinations/persistiq/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "group",
- "identify"
- ],
- "device-mode": {
- "web": [
- "group",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/persistiq/ui_config.json b/data/destinations/persistiq/ui_config.json
deleted file mode 100644
index 93e58494a..000000000
--- a/data/destinations/persistiq/ui_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "PersistIQ REST API Key",
- "value": "apiKey",
- "regex": "^(.{1,100})$",
- "required": true,
- "placeholder": "e.g. 2c646069c3ery92322cc0dab36cd060ad",
- "secret": true,
- "footerNote": "Enter the API Key from PersistIQ Settings for Authentication"
- }
- ]
- },
- {
- "title": "Mapping Configurations",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder user attributes to Persist IQ Lead attributes",
- "value": "persistIqAttributesMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. Industry Name",
- "placeholderRight": "e.g. industry",
- "labelLeft": "Rudder Property",
- "labelRight": "PersistIQ Lead attribute"
- }
-
- ]
- }
- ]
-}
diff --git a/data/destinations/personalize/metadata.json b/data/destinations/personalize/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/personalize/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/personalize/schema.json b/data/destinations/personalize/schema.json
deleted file mode 100644
index 52fca91a9..000000000
--- a/data/destinations/personalize/schema.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "region"
- ],
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "accessKeyId": {
- "type": "string",
- "pattern": "^(.{0,100})$"
- },
- "secretAccessKey": {
- "type": "string",
- "pattern": "^(.{0,100})$"
- },
- "region": {
- "type": "string",
- "pattern": "^(.{0,100})$"
- },
- "trackingId": {
- "type": "string",
- "pattern": "^(.{0,100})$"
- },
- "datasetARN": {
- "type": "string",
- "pattern": "arn:([a-z/d-]+):personalize:.*:.*:.+"
- },
- "eventChoice": {
- "type": "string",
- "pattern": "(^env[.].*)|^(PutEvents|PutUsers|PutItems)$"
- },
- "customMappings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "disableStringify": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pinterest_tag/db_config.json b/data/destinations/pinterest_tag/db_config.json
deleted file mode 100644
index 204f1ff02..000000000
--- a/data/destinations/pinterest_tag/db_config.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "PINTEREST_TAG",
- "displayName": "Pinterest Tag",
- "config": {
- "cdkV2TestThreshold": 1,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": false,
- "includeKeys": [
- "tagId",
- "advertiserId",
- "appId",
- "customProperties",
- "eventsMapping",
- "enhancedMatch",
- "enableDeduplication",
- "deduplicationKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "tagId",
- "appId",
- "advertiserId",
- "sendingUnHashedData",
- "enableDeduplication",
- "deduplicationKey",
- "customProperties",
- "eventsMapping",
- "enhancedMatch",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
diff --git a/data/destinations/pinterest_tag/metadata.json b/data/destinations/pinterest_tag/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/pinterest_tag/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pinterest_tag/schema.json b/data/destinations/pinterest_tag/schema.json
deleted file mode 100644
index 23304ec93..000000000
--- a/data/destinations/pinterest_tag/schema.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "properties": {
- "tagId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "advertiserId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "appId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "sendingUnHashedData": {
- "type": "boolean"
- },
- "enableDeduplication": {
- "type": "boolean"
- },
- "deduplicationKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "enhancedMatch": {
- "type": "boolean"
- },
- "eventsMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "customProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "properties": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pinterest_tag/ui_config.json b/data/destinations/pinterest_tag/ui_config.json
deleted file mode 100644
index c54829057..000000000
--- a/data/destinations/pinterest_tag/ui_config.json
+++ /dev/null
@@ -1,225 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "TAG ID",
- "value": "tagId",
- "required": false,
- "placeholder": "e.g: 123456789",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "App Store App ID",
- "value": "appId",
- "required": false,
- "placeholder": "e.g: 429047995",
- "secret": false,
- "footerNote": "Relevent if ios source is connected"
- },
- {
- "type": "textInput",
- "label": "Pinterest Advertiser ID",
- "value": "advertiserId",
- "required": false,
- "placeholder": "e.g: 429047995",
- "secret": true,
- "footerNote": "Required field for cloud mode integration"
- }
- ]
- },
- {
- "title": "Other Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable hashing for user data conversions",
- "value": "sendingUnHashedData",
- "default": true,
- "footerNote": "Rudderstack will hash your user data by default. Switch this off if you are already sending hashed data"
- },
- {
- "type": "checkbox",
- "label": "Enable Event Deduplication",
- "value": "enableDeduplication",
- "default": false,
- "footerNote": "If not enabled here, Rudderstack will send messageId as event_id field."
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "enableDeduplication",
- "selectedValue": true
- }
- ],
- "label": "Deduplication Key",
- "value": "deduplicationKey",
- "placeholder": "e.g: messageId",
- "required": false,
- "footerNote": "Rudderstack will send this key-value from payload as an event deduplication key"
- },
- {
- "type": "checkbox",
- "label": "Enable Enhanced Match on Page Load",
- "value": "enhancedMatch",
- "required": false,
- "default": true,
- "footerNote": "If this setting is enabled, the Pinterest tag will be loaded with the existing traits of the logged user"
- },
- {
- "type": "dynamicCustomForm",
- "value": "customProperties",
- "footerNote": "If you wish to send any extra custom properties to Pinterest - in addition to the standard Pinterest properties - then list them below. These properties are case-insensitive, and can be nested. For example, if you want to send rudderanalytics.track('Event', {customProperty: { customValue: 2 }, someRandomMailId: 'user@gmail.com'}) then input these two property customProperty.customValue and someRandomMailId",
- "customFields": [
- {
- "type": "textInput",
- "required": false,
- "value": "properties",
- "label": "Custom Properties",
- "placeholder": "customProperty.customValue or someRandomMailId"
- }
- ]
- },
- {
- "type": "dynamicSelectForm",
- "label": "Map Your Events To Pinterest Events.",
- "labelLeft": "Event Name",
- "labelRight": "Pinterest Event",
- "value": "eventsMapping",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g: Order Completed",
- "placeholderRight": "e.g: Checkout",
- "options": [
- {
- "name": "Lead",
- "value": "Lead"
- },
- {
- "name": "PageVisit",
- "value": "PageVisit"
- },
- {
- "name": "ViewCategory",
- "value": "ViewCategory"
- },
- {
- "name": "SignUp",
- "value": "Signup"
- },
- {
- "name": "WatchVideo",
- "value": "WatchVideo"
- },
- {
- "name": "Checkout",
- "value": "Checkout"
- },
- {
- "name": "Search",
- "value": "Search"
- },
- {
- "name": "AddToCart",
- "value": "AddToCart"
- },
- {
- "name": "Custom",
- "value": "Custom"
- }
- ]
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- },
- {
- "title": "Consent Settings",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "oneTrustCookieCategories",
- "label": "OneTrust Cookie Categories",
- "customFields": [
- {
- "type": "textInput",
- "placeholder": "Marketing",
- "value": "oneTrustCookieCategory",
- "label": "Category Name/ID",
- "required": false
- }
- ]
- }
- ]
- }
- ]
-}
diff --git a/data/destinations/pipedream/db_config.json b/data/destinations/pipedream/db_config.json
deleted file mode 100644
index e2a1722ec..000000000
--- a/data/destinations/pipedream/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "PIPEDREAM",
- "displayName": "Pipedream",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "pipedreamUrl",
- "pipedreamMethod",
- "headers"
- ]
- },
- "secretKeys": [
- "headers.to"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pipedream/metadata.json b/data/destinations/pipedream/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/pipedream/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pipedream/schema.json b/data/destinations/pipedream/schema.json
deleted file mode 100644
index 1744dbfa8..000000000
--- a/data/destinations/pipedream/schema.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "pipedreamUrl"
- ],
- "properties": {
- "pipedreamUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
- },
- "pipedreamMethod": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(POST|PUT|PATCH|GET|DELETE)$)"
- },
- "headers": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100000})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pipedream/ui_config.json b/data/destinations/pipedream/ui_config.json
deleted file mode 100644
index 59aed26dd..000000000
--- a/data/destinations/pipedream/ui_config.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Pipedream URL",
- "value": "pipedreamUrl",
- "required": true,
- "placeholder": "http://www.abcd.com",
- "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
- },
- {
- "type": "singleSelect",
- "label": "URL Method",
- "value": "pipedreamMethod",
- "placeholder": "POST",
- "options": [
- {
- "name": "POST",
- "value": "POST"
- },
- {
- "name": "PUT",
- "value": "PUT"
- },
- {
- "name": "PATCH",
- "value": "PATCH"
- },
- {
- "name": "GET",
- "value": "GET"
- },
- {
- "name": "DELETE",
- "value": "DELETE"
- }
- ],
- "defaultOption": {
- "name": "POST",
- "value": "POST"
- }
- },
- {
- "type": "dynamicForm",
- "label": "Headers",
- "labelLeft": "Key",
- "labelRight": "Value",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "content-type",
- "placeholderRight": "application/json",
- "value": "headers"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/pipedrive/db_config.json b/data/destinations/pipedrive/db_config.json
deleted file mode 100644
index cc9213709..000000000
--- a/data/destinations/pipedrive/db_config.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "PIPEDRIVE",
- "displayName": "Pipedrive",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiToken",
- "userIdToken",
- "groupIdToken",
- "enableUserCreation",
- "personsMap",
- "leadsMap",
- "organizationMap"
- ]
- },
- "secretKeys": [
- "apiToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pipedrive/metadata.json b/data/destinations/pipedrive/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/pipedrive/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/pipedrive/schema.json b/data/destinations/pipedrive/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/pipedrive/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/pipedrive/ui_config.json b/data/destinations/pipedrive/ui_config.json
deleted file mode 100644
index de4ca4ca5..000000000
--- a/data/destinations/pipedrive/ui_config.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Api Token",
- "value": "apiToken",
- "regex": ".*",
- "required": true,
- "secret": true,
- "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
- "footerNote": "Your Pipedrive Api Token"
- },
- {
- "type": "textInput",
- "label": "UserID Token",
- "value": "userIdToken",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
- "footerNote": "Your UserId Field Token"
- },
- {
- "type": "textInput",
- "label": "GroupId Token",
- "value": "groupIdToken",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
- "footerNote": "Your GroupId Field Token"
- }
- ]
- },
- {
- "title": "Custom Field Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable User Creation",
- "value": "enableUserCreation",
- "default": false,
- "footerNote": "If turned on, RudderStack will create User (if not found) for all events"
- },
- {
- "type": "dynamicForm",
- "label": "Person Field Mapping",
- "footerNote": "",
- "labelLeft": "Field Name",
- "labelRight": "Field Token",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Gender",
- "placeholderRight": "e.g: 3N0gkA9Be_2gR2afax2",
- "value": "personsMap"
- },
- {
- "type": "dynamicForm",
- "label": "Leads Field Mapping",
- "footerNote": "",
- "labelLeft": "Field Name",
- "labelRight": "Field Token",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Location",
- "placeholderRight": "e.g: 3N0gkA9Be_2gR2afax2",
- "value": "leadsMap"
- },
- {
- "type": "dynamicForm",
- "label": "Organization Field Mapping",
- "footerNote": "",
- "labelLeft": "Field Name",
- "labelRight": "Field Token",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: MemberCount",
- "placeholderRight": "e.g: 3N0gkA9Be_2gR2afax2",
- "value": "organizationMap"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/post_affiliate_pro/db_config.json b/data/destinations/post_affiliate_pro/db_config.json
deleted file mode 100644
index 434bcbb26..000000000
--- a/data/destinations/post_affiliate_pro/db_config.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "POST_AFFILIATE_PRO",
- "displayName": "Post Affiliate Pro",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "url",
- "mergeProducts",
- "accountId",
- "paramNameUserId",
- "disableTrackingMethod",
- "cookieDomain",
- "cookieToCustomField",
- "affLinkId",
- "idName",
- "cookieLinkId",
- "cookieName",
- "clickEvents",
- "campaignToCustomField",
- "affiliateToCustomField",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "url",
- "mergeProducts",
- "accountId",
- "paramNameUserId",
- "disableTrackingMethod",
- "cookieDomain",
- "affLinkId",
- "affLinkId",
- "idName",
- "cookieLinkId",
- "cookieName",
- "clickEvents",
- "cookieToCustomField",
- "campaignToCustomField",
- "affiliateToCustomField",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/post_affiliate_pro/metadata.json b/data/destinations/post_affiliate_pro/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/post_affiliate_pro/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/post_affiliate_pro/schema.json b/data/destinations/post_affiliate_pro/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/post_affiliate_pro/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/post_affiliate_pro/ui_config.json b/data/destinations/post_affiliate_pro/ui_config.json
deleted file mode 100644
index 816c86ff0..000000000
--- a/data/destinations/post_affiliate_pro/ui_config.json
+++ /dev/null
@@ -1,218 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "URL of Post Affiliate Pro",
- "value": "url",
- "regex":"^(?!.*\\.ngrok\\.io).*$",
- "required": true,
- "placeholder": "https://abcdefgh.postaffiliatepro.com/scripts/trackjs.js"
- },
- {
- "type": "textInput",
- "label": "Account Id",
- "value": "accountId",
- "required": false,
- "placeholder": "default1",
- "footerNote": "ID of your network merchant account"
- },
- {
- "type": "textInput",
- "label": "Param Name UserId",
- "value": "paramNameUserId",
- "required": false,
- "placeholder": "new_a_aid_parameter",
- "footerNote": "Changed name of Affailiate ID / referrer ID parameter name"
- },
- {
- "type": "textInput",
- "label": "Cookie Domain",
- "value": "cookieDomain",
- "regex": "^(?!.*\\.ngrok\\.io).*$",
- "required": false,
- "placeholder": "maindomain.com",
- "footerNote": ""
- },
- {
- "type": "textInput",
- "label": "Cookie To Custom Field",
- "value": "cookieToCustomField",
- "required": false,
- "placeholder": "id_field",
- "footerNote": "Id of the field where cookie will be written"
- },
- {
- "type": "textInput",
- "label": "Campaign To Custom Field",
- "value": "campaignToCustomField",
- "required": false,
- "placeholder": "campaignCookieInfoId",
- "footerNote": "Id of the field where campaign will be written"
- },
- {
- "type": "textInput",
- "label": "Affiliate To Custom Field",
- "value": "affiliateToCustomField",
- "required": false,
- "placeholder": "id_field",
- "footerNote": "Id of the field where affiliate will be written"
- }
- ]
- },
- {
- "title": "Affiliate To Link",
- "fields": [
- {
- "type": "textInput",
- "label": "Affiliate Link Id",
- "value": "affLinkId",
- "placeholder": "affLinkId",
- "footerNote": "Id of dom object where affiliateId needed to add."
- },
- {
- "type": "textInput",
- "placeholder": "a_aid",
- "label": "AffliateId parameter name",
- "value": "idName",
- "footerNote": "Param name for AffiliateId"
- }
- ]
- },
- {
- "title": "Cookie To Link",
- "fields": [
- {
- "type": "textInput",
- "label": "Cookie Link Id",
- "value": "cookieLinkId",
- "placeholder": "cookieLinkId",
- "footerNote": "Id of dom object where cookie needed to add."
- },
- {
- "type": "textInput",
- "placeholder": "papCookie",
- "label": "Cookie parameter name",
- "value": "cookieName",
- "footerNote": "Param name for Cookie"
- }
- ]
- },
- {
- "title": "Event Track Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Merge Products",
- "value": "mergeProducts",
- "required": false,
- "default": true,
- "footerNote": "If you make it false, individual sale object will be created for each products."
- },
- {
- "type": "checkbox",
- "label": "Disable Tracking Method",
- "value": "disableTrackingMethod",
- "required": false,
- "default": true,
- "footerNote": "In case you wish to disable flash cookie creation for any reason make it false."
- },
- {
- "type": "textInput",
- "label": "List of events for click",
- "value": "clickEvents",
- "required": false,
- "placeholder": "clicked,visited",
- "footerNote": "Enter the name of the events in a comma seperated form"
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "defaultCheckbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- },
- {
- "title": "Consent Settings",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "oneTrustCookieCategories",
- "label": "OneTrust Cookie Categories",
- "customFields": [
- {
- "type": "textInput",
- "placeholder": "Marketing",
- "value": "oneTrustCookieCategory",
- "label": "Category Name/ID",
- "required": false
- }
- ]
- }
- ]
- }
- ]
-}
diff --git a/data/destinations/postgres/metadata.json b/data/destinations/postgres/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/postgres/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/postgres/schema.json b/data/destinations/postgres/schema.json
deleted file mode 100644
index 8970bdaea..000000000
--- a/data/destinations/postgres/schema.json
+++ /dev/null
@@ -1,306 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "host",
- "database",
- "user",
- "password",
- "port",
- "sslMode",
- "syncFrequency",
- "useRudderStorage"
- ],
- "properties": {
- "host": {
- "type": "string",
- "pattern": "(^env[.].+)|(?!.*.ngrok.io)^(.{1,100})$"
- },
- "database": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "user": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "port": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "sslMode": {
- "type": "string",
- "pattern": "^(disable|require|verify-ca)$"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "jsonPaths": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "useRudderStorage": {
- "type": "boolean",
- "default": false
- },
- "bucketProvider": {
- "type": "string",
- "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "useSSH": {
- "const": true
- }
- },
- "required": ["useSSH"]
- },
- "then": {
- "properties": {
- "sshHost": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,255})$"
- },
- "sshPort": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,255})$"
- },
- "sshUser": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,255})$"
- },
- "sshPublicKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,10000})$"
- }
- },
- "required": ["sshHost", "sshPort", "sshUser", "sshPublicKey"]
- }
- },
- {
- "if": {
- "properties": {
- "useRudderStorage": {
- "const": false
- }
- },
- "required": ["useRudderStorage"]
- },
- "then": {
- "required": ["bucketProvider"]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "S3"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": ["bucketProvider", "useRudderStorage"]
- },
- "then": {
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- }
- },
- "required": ["bucketName", "accessKeyID", "accessKey"]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "GCS"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": ["bucketProvider", "useRudderStorage"]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": ["bucketName", "credentials"]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "AZURE_BLOB"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": ["bucketProvider", "useRudderStorage"]
- },
- "then": {
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": ["containerName", "accountName"],
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": ["accountKey"]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": ["useSASTokens", "sasToken"]
- }
- ]
- }
- },
- {
- "if": {
- "properties": {
- "bucketProvider": {
- "const": "MINIO"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": ["bucketProvider", "useRudderStorage"]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "endPoint": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?!.*\\.ngrok\\.io)(.{1,100})$"
- },
- "secretAccessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "useSSL": {
- "type": "boolean"
- }
- },
- "required": [
- "bucketName",
- "endPoint",
- "accessKeyID",
- "secretAccessKey",
- "useSSL"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "sslMode": {
- "const": "verify-ca"
- }
- },
- "required": ["sslMode"]
- },
- "then": {
- "properties": {
- "clientKey": {
- "type": "string",
- "pattern": "-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----"
- },
- "clientCert": {
- "type": "string",
- "pattern": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----"
- },
- "serverCA": {
- "type": "string",
- "pattern": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----"
- }
- },
- "required": ["clientKey", "clientCert", "serverCA"]
- }
- }
- ],
- "additionalProperties": true
- }
-}
diff --git a/data/destinations/posthog/db_config.json b/data/destinations/posthog/db_config.json
deleted file mode 100644
index 52a942179..000000000
--- a/data/destinations/posthog/db_config.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "name": "POSTHOG",
- "displayName": "PostHog",
- "config": {
- "includeKeys": [
- "teamApiKey",
- "yourInstance",
- "autocapture",
- "capturePageView",
- "disableSessionRecording",
- "propertyBlackList",
- "xhrHeaders",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "enableLocalStoragePersistence",
- "eventFilteringOption",
- "useV2Group"
- ],
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "alias",
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "teamApiKey",
- "yourInstance",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "useV2Group"
- ],
- "web": [
- "useNativeSDK",
- "autocapture",
- "capturePageView",
- "disableSessionRecording",
- "propertyBlackList",
- "xhrHeaders",
- "oneTrustCookieCategories",
- "enableLocalStoragePersistence"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/posthog/metadata.json b/data/destinations/posthog/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/posthog/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/posthog/schema.json b/data/destinations/posthog/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/posthog/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/profitwell/db_config.json b/data/destinations/profitwell/db_config.json
deleted file mode 100644
index 4ed714f38..000000000
--- a/data/destinations/profitwell/db_config.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "PROFITWELL",
- "displayName": "ProfitWell",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "publicApiKey",
- "siteType",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "privateApiKey",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "publicApiKey",
- "siteType",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "privateApiKey",
- "publicApiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/profitwell/metadata.json b/data/destinations/profitwell/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/profitwell/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/profitwell/schema.json b/data/destinations/profitwell/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/profitwell/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/qualtrics/db_config.json b/data/destinations/qualtrics/db_config.json
deleted file mode 100644
index 700e732b2..000000000
--- a/data/destinations/qualtrics/db_config.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "QUALTRICS",
- "displayName": "Qualtrics",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "projectId",
- "brandId",
- "enableGenericPageTitle",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "android",
- "ios"
- ],
- "destConfig": {
- "defaultConfig": [
- "projectId",
- "brandId",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "enableGenericPageTitle",
- "oneTrustCookieCategories"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ]
- },
- "secretKeys": [
- "projectId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/qualtrics/metadata.json b/data/destinations/qualtrics/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/qualtrics/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/qualtrics/schema.json b/data/destinations/qualtrics/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/qualtrics/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/quantummetric/db_config.json b/data/destinations/quantummetric/db_config.json
deleted file mode 100644
index 58d88d8d1..000000000
--- a/data/destinations/quantummetric/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "QUANTUMMETRIC",
- "displayName": "Quantum Metric",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "siteID",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "siteID",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/quantummetric/metadata.json b/data/destinations/quantummetric/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/quantummetric/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/quantummetric/schema.json b/data/destinations/quantummetric/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/quantummetric/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/quora_pixel/db_config.json b/data/destinations/quora_pixel/db_config.json
deleted file mode 100644
index 04cc526b4..000000000
--- a/data/destinations/quora_pixel/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "QUORA_PIXEL",
- "displayName": "Quora Pixel",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "pixelId",
- "eventsToQPEvents",
- "whitelistedEvents",
- "blacklistedEvents",
- "eventFilteringOption",
- "oneTrustCookieCategories"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "pixelId",
- "eventsToQPEvents",
- "whitelistedEvents",
- "blacklistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "pixelId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/quora_pixel/metadata.json b/data/destinations/quora_pixel/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/quora_pixel/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/quora_pixel/schema.json b/data/destinations/quora_pixel/schema.json
deleted file mode 100644
index b9b41bd5a..000000000
--- a/data/destinations/quora_pixel/schema.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "pixelId"
- ],
- "properties": {
- "pixelId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "eventsToQPEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/reddit_pixel/db_config.json b/data/destinations/reddit_pixel/db_config.json
deleted file mode 100644
index 501ca876e..000000000
--- a/data/destinations/reddit_pixel/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "REDDIT_PIXEL",
- "displayName": "Reddit Pixel",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "advertiserId",
- "eventMappingFromConfig",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "advertiserId",
- "eventMappingFromConfig",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "advertiserId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/reddit_pixel/metadata.json b/data/destinations/reddit_pixel/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/reddit_pixel/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/reddit_pixel/schema.json b/data/destinations/reddit_pixel/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/reddit_pixel/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/redis/db_config.json b/data/destinations/redis/db_config.json
deleted file mode 100644
index f3d7bdb92..000000000
--- a/data/destinations/redis/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "REDIS",
- "displayName": "Redis",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "secretKeys": [
- "password",
- "caCertificate"
- ],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "address",
- "database",
- "password",
- "prefix",
- "secure",
- "skipVerify",
- "caCertificate",
- "clusterMode"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/redis/metadata.json b/data/destinations/redis/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/redis/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/redis/schema.json b/data/destinations/redis/schema.json
deleted file mode 100644
index cdfa6017f..000000000
--- a/data/destinations/redis/schema.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "additionalProperties": false,
- "required": [
- "address"
- ],
- "properties": {
- "address": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
- },
- "clusterMode": {
- "type": "boolean"
- },
- "secure": {
- "type": "boolean"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "database": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "caCertificate": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
- },
- "skipVerify": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/redis/ui_config.json b/data/destinations/redis/ui_config.json
deleted file mode 100644
index 8aeefa562..000000000
--- a/data/destinations/redis/ui_config.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Address",
- "value": "address",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid Address",
- "required": true,
- "placeholder": "e.g: localhost:6379"
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "regex": ".*",
- "required": false,
- "placeholder": "",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "database",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Database",
- "required": false,
- "placeholder": "",
- "preRequisiteField": {
- "name": "clusterMode",
- "selectedValue": false
- }
- },
- {
- "type": "checkbox",
- "label": "Cluster Mode",
- "value": "clusterMode",
- "default": true
- },
- {
- "type": "checkbox",
- "label": "Secure",
- "value": "secure",
- "default": false
- },
- {
- "type": "checkbox",
- "preRequisiteField": {
- "name": "secure",
- "selectedValue": true
- },
- "label": "Skip verify",
- "value": "skipVerify",
- "default": false,
- "footerNote": "if you are using self signed certificates make this field true"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": {
- "name": "secure",
- "selectedValue": true
- },
- "label": "CA certificate",
- "value": "caCertificate",
- "regex": ".*",
- "required": false,
- "placeholder": "CA Certificate",
- "footerNote": "Can be skipped for CA's that can be verified with any client (eg. Elasticache)"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": ""
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/revenue_cat/db_config.json b/data/destinations/revenue_cat/db_config.json
deleted file mode 100644
index fe3151793..000000000
--- a/data/destinations/revenue_cat/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "REVENUE_CAT",
- "displayName": "Revenue Cat",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "cloud",
- "mobile",
- "android",
- "ios",
- "unity",
- "amp",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "xPlatform"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/revenue_cat/metadata.json b/data/destinations/revenue_cat/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/revenue_cat/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/revenue_cat/schema.json b/data/destinations/revenue_cat/schema.json
deleted file mode 100644
index 5177a8b40..000000000
--- a/data/destinations/revenue_cat/schema.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "xPlatform": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(ios|android|amazon|macos|stripe|uikitformac)$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/revenue_cat/ui_config.json b/data/destinations/revenue_cat/ui_config.json
deleted file mode 100644
index 10031ed33..000000000
--- a/data/destinations/revenue_cat/ui_config.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Public API Key",
- "value": "apiKey",
- "regex": "^(.{1,100})$",
- "required": true,
- "placeholder": "e.g. b4a29aba5e75d99c8a18acd920ec1e2e",
- "secret": true,
- "footerNote": "Your Public API Key"
- },
- {
- "type": "singleSelect",
- "label": "X-Platform",
- "value": "xPlatform",
- "options": [
- {
- "name": "iOS",
- "value": "ios"
- },
- {
- "name": "Android",
- "value": "android"
- },
- {
- "name": "Amazon",
- "value": "amazon"
- },
- {
- "name": "macOS",
- "value": "macos"
- },
- {
- "name": "Stripe",
- "value": "stripe"
- },
- {
- "name": "UI kit for mac",
- "value": "uikitformac"
- }
- ],
- "defaultOption": {
- "name": "Stripe",
- "value": "stripe"
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/rockerbox/db_config.json b/data/destinations/rockerbox/db_config.json
deleted file mode 100644
index 10c806847..000000000
--- a/data/destinations/rockerbox/db_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "ROCKERBOX",
- "displayName": "Rockerbox",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "advertiserId",
- "eventsMap",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "oneTrustCookieCategories",
- "useNativeSDKToSend",
- "clientAuthId",
- "customDomain",
- "enableCookieSync"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "amp",
- "android",
- "cordova",
- "cloud",
- "flutter",
- "ios",
- "reactnative",
- "unity",
- "warehouse",
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "advertiserId",
- "eventsMap",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "useNativeSDKToSend",
- "clientAuthId",
- "oneTrustCookieCategories",
- "customDomain",
- "enableCookieSync"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/rockerbox/metadata.json b/data/destinations/rockerbox/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/rockerbox/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/rockerbox/schema.json b/data/destinations/rockerbox/schema.json
deleted file mode 100644
index c8b5ef1e3..000000000
--- a/data/destinations/rockerbox/schema.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "advertiserId"
- ],
- "properties": {
- "advertiserId": {
- "type": "string"
- },
- "clientAuthId": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string"
- }
- }
- },
- "customDomain": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "^(?!.*\\.ngrok\\.io).*$"
- }
- }
- },
- "enableCookieSync": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "eventsMap": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "useNativeSDKToSend": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/rollbar/db_config.json b/data/destinations/rollbar/db_config.json
deleted file mode 100644
index 39ead89bc..000000000
--- a/data/destinations/rollbar/db_config.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "ROLLBAR",
- "displayName": "rollbar",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "accessToken",
- "captureUncaughtException",
- "captureUnhandledRejections",
- "guessUncaughtFrames",
- "codeVersion",
- "environment",
- "ignoredMessages",
- "sourceMapEnabled",
- "blacklistedEvents",
- "whitelistedEvents"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "accessToken",
- "captureUncaughtException",
- "captureUnhandledRejections",
- "guessUncaughtFrames",
- "codeVersion",
- "environment",
- "ignoredMessages",
- "sourceMapEnabled",
- "blacklistedEvents",
- "whitelistedEvents"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "accessToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/rollbar/metadata.json b/data/destinations/rollbar/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/rollbar/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/rollbar/schema.json b/data/destinations/rollbar/schema.json
deleted file mode 100644
index 16e26639d..000000000
--- a/data/destinations/rollbar/schema.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "accessToken"
- ],
- "type": "object",
- "properties": {
- "accessToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "captureUncaughtException": {
- "type": "boolean"
- },
- "captureUnhandledRejections": {
- "type": "boolean"
- },
- "guessUncaughtFrames": {
- "type": "boolean"
- },
- "codeVersion": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "environment": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "ignoredMessages": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "sourceMapEnabled": {
- "type": "boolean"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/rs/metadata.json b/data/destinations/rs/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/rs/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3/db_config.json b/data/destinations/s3/db_config.json
deleted file mode 100644
index db45500ca..000000000
--- a/data/destinations/s3/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "S3",
- "displayName": "Amazon S3",
- "config": {
- "transformAt": "none",
- "transformAtV1": "none",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "bucketName",
- "prefix",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "enableSSE"
- ]
- },
- "secretKeys": [
- "accessKeyID",
- "accessKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3/metadata.json b/data/destinations/s3/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/s3/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3/schema.json b/data/destinations/s3/schema.json
deleted file mode 100644
index a7511fb00..000000000
--- a/data/destinations/s3/schema.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "bucketName"
- ],
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "enableSSE": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3/ui_config.json b/data/destinations/s3/ui_config.json
deleted file mode 100644
index 3487b99a1..000000000
--- a/data/destinations/s3/ui_config.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "S3 Bucket Name",
- "value": "bucketName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid S3 Bucket Name",
- "required": true,
- "placeholder": "e.g: s3-event-logs"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder"
- },
- {
- "type": "checkbox",
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": {
- "name": "roleBasedAuth",
- "selectedValue": true
- },
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": false,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": {
- "name": "roleBasedAuth",
- "selectedValue": false
- },
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Access Key ID",
- "required": false,
- "placeholder": "e.g: access-key-id",
- "secret": true
- },
- {
- "type": "textInput",
- "preRequisiteField": {
- "name": "roleBasedAuth",
- "selectedValue": false
- },
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Secret Access Key",
- "required": false,
- "placeholder": "e.g: secret-access-key",
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Enable Server Side Encryption?",
- "value": "enableSSE",
- "default": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/s3_datalake/db_config.json b/data/destinations/s3_datalake/db_config.json
deleted file mode 100644
index 57b1db1b5..000000000
--- a/data/destinations/s3_datalake/db_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "S3_DATALAKE",
- "displayName": "S3 Datalake",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "warehouse",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "useGlue",
- "region",
- "bucketName",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "prefix",
- "namespace",
- "syncFrequency",
- "syncStartAt",
- "excludeWindow"
- ]
- },
- "secretKeys": [
- "password",
- "accessKeyID",
- "accessKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3_datalake/metadata.json b/data/destinations/s3_datalake/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/s3_datalake/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3_datalake/schema.json b/data/destinations/s3_datalake/schema.json
deleted file mode 100644
index 80503ea46..000000000
--- a/data/destinations/s3_datalake/schema.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "bucketName",
- "useGlue",
- "syncFrequency"
- ],
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "useGlue": {
- "type": "boolean"
- },
- "prefix": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "enableSSE": {
- "type": "boolean"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "useGlue": {
- "const": true
- }
- },
- "required": [
- "useGlue"
- ]
- },
- "then": {
- "properties": {
- "region": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- }
- },
- "required": [
- "region"
- ]
- }
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/s3_datalake/ui_config.json b/data/destinations/s3_datalake/ui_config.json
deleted file mode 100644
index 0da47e756..000000000
--- a/data/destinations/s3_datalake/ui_config.json
+++ /dev/null
@@ -1,162 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "S3 Storage Bucket Name",
- "labelNote": "S3 Bucket to store your event data",
- "value": "bucketName",
- "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "required": true,
- "footerNote": "Please make sure the bucket exists in your S3"
- },
- {
- "type": "checkbox",
- "label": "Register schema on AWS Glue",
- "value": "useGlue",
- "default": false,
- "footerNote": "We register the schema on AWS Glue's Data Catalog if this option is enabled"
- },
- {
- "type": "textInput",
- "label": "AWS Glue Region",
- "labelNote": "Your AWS Glue region.Ex-For N.Virginia, this field's value would be 'us-east-1'",
- "value": "region",
- "regex": ".*",
- "required": true,
- "preRequisiteField": {
- "name": "useGlue",
- "selectedValue": true
- }
- },
- {
- "type": "textInput",
- "label": "S3 Prefix",
- "labelNote": "If configured, all data pushed by rudderstack will be at s3:////",
- "value": "prefix",
- "regex": ".*",
- "required": false,
- "placeholder": ""
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "value": "namespace",
- "labelNote": "Defaults to source name.",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "required": false,
- "footerNote": "All data for the destination would be pushed to s3:////rudder-datalake/.If glue is enabled, all table definitions are created in a database with name set to namespace."
- },
- {
- "type": "checkbox",
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "roleBasedAuth",
- "selectedValue": true
- }
- ],
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g: access-key-id",
- "secret": true
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": ".*",
- "required": false,
- "placeholder": "e.g: secret-access-key",
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Enable Server Side Encryption For S3?",
- "value": "enableSSE",
- "default": false
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/salesforce/db_config.json b/data/destinations/salesforce/db_config.json
deleted file mode 100644
index 21b18db21..000000000
--- a/data/destinations/salesforce/db_config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "SALESFORCE",
- "displayName": "Salesforce",
- "config": {
- "supportsVisualMapper": true,
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "userName",
- "password",
- "initialAccessToken",
- "mapProperties",
- "sandbox",
- "useContactId"
- ]
- },
- "secretKeys": [
- "password",
- "initialAccessToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/salesforce/metadata.json b/data/destinations/salesforce/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/salesforce/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/salesforce/schema.json b/data/destinations/salesforce/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/salesforce/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/salesforce/ui_config.json b/data/destinations/salesforce/ui_config.json
deleted file mode 100644
index 636d2ba8c..000000000
--- a/data/destinations/salesforce/ui_config.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "User Name",
- "value": "userName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid User Name",
- "required": true,
- "placeholder": "e.g. user_name"
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. password",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Security Token",
- "value": "initialAccessToken",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Security Token",
- "required": true,
- "placeholder": "e.g. ISnPS2LcOtn9bHf6Id6vG0jgh",
- "secret": true
- }
- ]
- },
- {
- "title": "Other Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Map Rudder Properties to Salesforce Properties",
- "value": "mapProperties",
- "default": true
- },
- {
- "type": "checkbox",
- "label": "Sandbox mode",
- "value": "sandbox",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Use contactId for converted leads",
- "value": "useContactId",
- "default": false,
- "footerNote": "It is suggested to enable this option when both lead and contact field mappings are same."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/satismeter/metadata.json b/data/destinations/satismeter/metadata.json
deleted file mode 100644
index d771a284b..000000000
--- a/data/destinations/satismeter/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
diff --git a/data/destinations/satismeter/schema.json b/data/destinations/satismeter/schema.json
deleted file mode 100644
index ba963af83..000000000
--- a/data/destinations/satismeter/schema.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "writeKey"
- ],
- "properties": {
- "writekey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "identifyAnonymousUsers": {
- "type": "boolean"
- },
- "recordSatismeterEvents": {
- "type": "boolean"
- },
- "updateEventNames": {
- "type": "boolean"
- },
- "eventsToStandard": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/data/destinations/segment/db_config.json b/data/destinations/segment/db_config.json
deleted file mode 100644
index 6bf8615d1..000000000
--- a/data/destinations/segment/db_config.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "SEGMENT",
- "displayName": "Segment",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "writeKey"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/segment/metadata.json b/data/destinations/segment/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/segment/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/segment/schema.json b/data/destinations/segment/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/segment/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/segment/ui_config.json b/data/destinations/segment/ui_config.json
deleted file mode 100644
index cfeb3bb00..000000000
--- a/data/destinations/segment/ui_config.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Segment Write Key",
- "value": "writeKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Segment Write Key",
- "required": true,
- "placeholder": "e.g: bSjsdGYsOo9sjw23Shj"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/sendgrid/metadata.json b/data/destinations/sendgrid/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/sendgrid/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/sendgrid/schema.json b/data/destinations/sendgrid/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/sendgrid/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/sendinblue/schema.json b/data/destinations/sendinblue/schema.json
deleted file mode 100644
index 9cd55724d..000000000
--- a/data/destinations/sendinblue/schema.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": ["apiKey", "clientKey"],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "clientKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "doi": { "type": "boolean" },
- "templateId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- },
- "redirectionUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
- },
- "keyToContactAttributeMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "sendTraitsInTrack": { "type": "boolean" },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/data/destinations/sentry/db_config.json b/data/destinations/sentry/db_config.json
deleted file mode 100644
index 2766b7591..000000000
--- a/data/destinations/sentry/db_config.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "SENTRY",
- "displayName": "Sentry",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "dsn",
- "environment",
- "customVersionProperty",
- "release",
- "serverName",
- "logger",
- "ignoreErrors",
- "includePaths",
- "allowUrls",
- "denyUrls",
- "debugMode",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify"
- ],
- "destConfig": {
- "defaultConfig": [
- "dsn",
- "environment",
- "customVersionProperty",
- "release",
- "serverName",
- "logger",
- "ignoreErrors",
- "includePaths",
- "allowUrls",
- "denyUrls",
- "debugMode",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "dsn"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/sentry/metadata.json b/data/destinations/sentry/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/sentry/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/sentry/schema.json b/data/destinations/sentry/schema.json
deleted file mode 100644
index 3a2a9c471..000000000
--- a/data/destinations/sentry/schema.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "additionalProperties": false,
- "required": [
- "dsn"
- ],
- "properties": {
- "dsn": {
- "type": "string"
- },
- "environment": {
- "type": "string"
- },
- "customVersionProperty": {
- "type": "string"
- },
- "release": {
- "type": "string"
- },
- "serverName": {
- "type": "string"
- },
- "logger": {
- "type": "string"
- },
- "debugMode": {
- "type": "boolean"
- },
- "ignoreErrors": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "ignoreErrors": {
- "type": "string"
- }
- }
- }
- },
- "includePaths": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "includePaths": {
- "type": "string"
- }
- }
- }
- },
- "allowUrls": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "allowUrls": {
- "type": "string",
- "pattern": "^(?!.*\\.ngrok\\.io).*$"
- }
- }
- }
- },
- "denyUrls": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "denyUrls": {
- "type": "string",
- "pattern": "^(?!.*\\.ngrok\\.io).*$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/serenytics/db_config.json b/data/destinations/serenytics/db_config.json
deleted file mode 100644
index da10e005c..000000000
--- a/data/destinations/serenytics/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "SERENYTICS",
- "displayName": "Serenytics",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "group",
- "page",
- "screen",
- "alias"
- ],
- "destConfig": {
- "defaultConfig": [
- "storageUrlIdentify",
- "storageUrlTrack",
- "eventToStorageUrlMap",
- "storageUrlGroup",
- "storageUrlAlias",
- "storageUrlPage",
- "storageUrlScreen"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/serenytics/metadata.json b/data/destinations/serenytics/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/serenytics/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/serenytics/schema.json b/data/destinations/serenytics/schema.json
deleted file mode 100644
index a3f46970a..000000000
--- a/data/destinations/serenytics/schema.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "properties": {
- "storageUrlIdentify": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
- },
- "storageUrlTrack": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
- },
- "storageUrlGroup": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
- },
- "storageUrlAlias": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
- },
- "storageUrlPage": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
- },
- "storageUrlScreen": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
- },
- "eventToStorageUrlMap": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,200})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,200})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/serenytics/ui_config.json b/data/destinations/serenytics/ui_config.json
deleted file mode 100644
index e8ad158e6..000000000
--- a/data/destinations/serenytics/ui_config.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Data Source Storage Url for Identify",
- "value": "storageUrlIdentify",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
- "required": false,
- "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
- },
- {
- "type": "textInput",
- "label": "Data Source Storage Url for Track",
- "value": "storageUrlTrack",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
- "required": false,
- "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
- },
- {
- "type": "dynamicForm",
- "label": "Event Specific Storage Url",
- "value": "eventToStorageUrlMap",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. Order Completed",
- "placeholderRight": "e.g https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917",
- "labelLeft": "Event Name",
- "labelRight": "Data Source Storage Url for Event"
- },
- {
- "type": "textInput",
- "label": "Data Source Storage Url for Group",
- "value": "storageUrlGroup",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
- "required": false,
- "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
- },
- {
- "type": "textInput",
- "label": "Data Source Storage Url for Alias",
- "value": "storageUrlAlias",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
- "required": false,
- "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
- },
- {
- "type": "textInput",
- "label": "Data Source Storage Url for Page",
- "value": "storageUrlPage",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
- "required": false,
- "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
- },
- {
- "type": "textInput",
- "label": "Data Source Storage Url for Screen",
- "value": "storageUrlScreen",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
- "required": false,
- "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/sfmc/db_config.json b/data/destinations/sfmc/db_config.json
deleted file mode 100644
index 6fc4e1fbb..000000000
--- a/data/destinations/sfmc/db_config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "SFMC",
- "displayName": "Salesforce Marketing Cloud",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "clientId",
- "clientSecret",
- "subDomain",
- "createOrUpdateContacts",
- "externalKey",
- "eventToExternalKey",
- "eventToPrimaryKey",
- "eventToUUID"
- ]
- },
- "secretKeys": [
- "clientId",
- "clientSecret",
- "subDomain"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/sfmc/metadata.json b/data/destinations/sfmc/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/sfmc/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/sfmc/schema.json b/data/destinations/sfmc/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/sfmc/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/sfmc/ui_config.json b/data/destinations/sfmc/ui_config.json
deleted file mode 100644
index f6200fe4d..000000000
--- a/data/destinations/sfmc/ui_config.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Client Id",
- "value": "clientId",
- "required": true,
- "placeholder": "e.g. ow081701234iblovt1z0j8hm",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Client Secret",
- "value": "clientSecret",
- "required": true,
- "placeholder": "e.g. Sm7Yoqpx1jpn1234Juvl61Ag",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Subdomain",
- "value": "subDomain",
- "required": true,
- "placeholder": "e.g. mcxt4zx46412341jd9rp300hdc8y",
- "secret": true
- }
- ]
- },
- {
- "title": "Identify Call Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Do Not Create or Update Contacts",
- "value": "createOrUpdateContacts",
- "default": false,
- "footerNote": "To disable creating or updating contacts during an identify call, set this option to true."
- },
- {
- "type": "textInput",
- "label": "Identify Data External Key",
- "value": "externalKey",
- "required": false,
- "placeholder": "e.g. mcxt4zx46412341jd9rp300hdc8y",
- "footerNote": "Use this setting if you would like Rudder identify events to create or update Data Extensions in SFMC. The External Key of the Salesforce Marketing Cloud Data Extension to which you'd like to send Identify data. You can find this in the SFMC interface by navigating to Data & Analytics > Contact Builder > Data Extensions; the extension's name will appear in the External Key column."
- }
- ]
- },
- {
- "title": "Track Call Settings",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map events to external key",
- "labelLeft": "Event Name",
- "labelRight": "External Key",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Clicked",
- "placeholderRight": "eg: 69364906-1111-1111-1111-7D9CD87F16EC",
- "value": "eventToExternalKey"
- },
- {
- "type": "dynamicForm",
- "label": "Map events to primary key",
- "labelLeft": "Event Name",
- "labelRight": "Primary Key",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Clicked",
- "placeholderRight": "eg: Contact Key",
- "value": "eventToPrimaryKey",
- "footerNote": "The target Data Extension's Primary Key. If a value is not provided, defaults to Contact Key. You can add multiple primary keys by separating them with commas. The primary key names should be same as that you have set in SFMC data extensions."
- },
- {
- "type": "dynamicCustomForm",
- "value": "eventToUUID",
- "customFields": [
- {
- "type": "textInput",
- "value": "event",
- "label": "Event Name",
- "placeholder": "e.g. Product Added",
- "required": false
- },
- {
- "type": "checkbox",
- "value": "uuid",
- "label": "UUID",
- "required": false,
- "footerNote": "If this is checked then we will generate a UUID and pass it through to SMC as the value for Primary Key for this event called 'Uuid'. This will override the above Primary Key field."
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/shynet/db_config.json b/data/destinations/shynet/db_config.json
deleted file mode 100644
index e32f5974a..000000000
--- a/data/destinations/shynet/db_config.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "SHYNET",
- "displayName": "Shynet",
- "config": {
- "supportsVisualMapper": true,
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "heartBeatFrequencyInMs",
- "shynetServiceUrl",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "heartBeatFrequencyInMs",
- "shynetServiceUrl",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/shynet/metadata.json b/data/destinations/shynet/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/shynet/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/shynet/schema.json b/data/destinations/shynet/schema.json
deleted file mode 100644
index 20faaa977..000000000
--- a/data/destinations/shynet/schema.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "shynetServiceUrl"
- ],
- "type": "object",
- "properties": {
- "heartBeatFrequencyInMs": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,10})$"
- },
- "shynetServiceUrl": {
- "type": "string",
- "pattern": "^(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$"
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,300})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/signl4/db_config.json b/data/destinations/signl4/db_config.json
deleted file mode 100644
index 56ccfeff4..000000000
--- a/data/destinations/signl4/db_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "SIGNL4",
- "displayName": "SIGNL4",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "s4ServiceValue",
- "s4ServiceProperty",
- "s4LocationValue",
- "s4LocationProperty",
- "s4AlertingScenarioValue",
- "s4AlertingScenarioProperty",
- "s4ExternalIDValue",
- "s4ExternalIDProperty",
- "s4StatusValue",
- "s4StatusProperty",
- "s4Filter",
- "eventToTitleMapping"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/signl4/metadata.json b/data/destinations/signl4/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/signl4/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/signl4/schema.json b/data/destinations/signl4/schema.json
deleted file mode 100644
index 2e51b6701..000000000
--- a/data/destinations/signl4/schema.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "s4ServiceValue": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4ServiceProperty": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4LocationValue": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4LocationProperty": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4AlertingScenarioValue": {
- "type": "string",
- "pattern": "^(single_ack|multi_ack|emergency)$"
- },
- "s4AlertingScenarioProperty": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4ExternalIDValue": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4ExternalIDProperty": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4StatusValue": {
- "type": "string",
- "pattern": "^(new|acknowledged|resolved)$"
- },
- "s4StatusProperty": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "s4Filter": {
- "type": "boolean"
- },
- "columnToPropertyMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/signl4/ui_config.json b/data/destinations/signl4/ui_config.json
deleted file mode 100644
index 4c5745601..000000000
--- a/data/destinations/signl4/ui_config.json
+++ /dev/null
@@ -1,205 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{1,300})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g. gi11aat8xy",
- "secret": true,
- "footerNote": "Your SIGNL4 team secret"
- }
- ]
- },
- {
- "title": "X-S4-Service",
- "fields": [
- {
- "type": "textInput",
- "label": "Default Value",
- "value": "s4ServiceValue",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid X-S4-Service Value",
- "required": false,
- "placeholder": "e.g. Security",
- "secret": false
- },
- {
- "type": "textInput",
- "label": "RudderStack property name",
- "value": "s4ServiceProperty",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid property name",
- "required": false,
- "placeholder": "e.g. service",
- "secret": false,
- "footerNote": "Assigns the Signl to the service/system category with the specified name"
- }
- ]
- },
- {
- "title": "X-S4-Location",
- "fields": [
- {
- "type": "textInput",
- "label": "Default Value",
- "value": "s4LocationValue",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid X-S4-Location Value",
- "required": false,
- "placeholder": "e.g. 40.6413111,-73.7781391",
- "secret": false
- },
- {
- "type": "textInput",
- "label": "RudderStack property name",
- "value": "s4LocationProperty",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid property name",
- "required": false,
- "placeholder": "e.g. location",
- "footerNote": "Transmit location information ('latitude, longitude') with your event"
- }
- ]
- },
- {
- "title": "X-S4-AlertingScenario",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Default Value",
- "value": "s4AlertingScenarioValue",
- "required": false,
- "options": [
- {
- "name": "single_ack",
- "value": "single_ack"
- },
- {
- "name": "multi_ack",
- "value": "multi_ack"
- },
- {
- "name": "emergency",
- "value": "emergency"
- }
- ],
- "defaultOption": {
- "name": "single_ack",
- "value": "single_ack"
- }
- },
- {
- "type": "textInput",
- "label": "RudderStack property name",
- "value": "s4AlertingScenarioProperty",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid property name",
- "required": false,
- "placeholder": "e.g. alertingScenario",
- "secret": false,
- "footerNote": "Allows to control how SIGNL4 notifies the team"
- }
- ]
- },
- {
- "title": "X-S4-ExternalID",
- "fields": [
- {
- "type": "textInput",
- "label": "Default Value",
- "value": "s4ExternalIDValue",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid X-S4-ExternalID",
- "required": false,
- "placeholder": "e.g. INC091210",
- "secret": false
- },
- {
- "type": "textInput",
- "label": "RudderStack property name",
- "value": "s4ExternalIDProperty",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid property name",
- "required": false,
- "placeholder": "e.g. externalId",
- "secret": false,
- "footerNote": "If the event originates from a record in a 3rd party system, use this parameter to pass the unique ID of that record"
- }
- ]
- },
- {
- "title": "X-S4-Status",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Default Value",
- "value": "s4StatusValue",
- "required": false,
- "options": [
- {
- "name": "new",
- "value": "new"
- },
- {
- "name": "acknowledged",
- "value": "acknowledged"
- },
- {
- "name": "resolved",
- "value": "resolved"
- }
- ],
- "defaultOption": {
- "name": "new",
- "value": "new"
- }
- },
- {
- "type": "textInput",
- "label": "RudderStack property name",
- "value": "s4StatusProperty",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid property name",
- "required": false,
- "placeholder": "e.g. status",
- "secret": false,
- "footerNote": "Provide the value of status of the alert from the above options"
- }
- ]
- },
- {
- "title": "X-S4-Filtering",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable to add filter",
- "value": "s4Filter",
- "default": false,
- "footerNote": "Set it to true to apply event filtering for this event"
- }
- ]
- },
- {
- "title": "Event to title mapping",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map event name with the alert title",
- "labelLeft": "Event Name",
- "labelRight": "Alert Title",
- "value": "eventToTitleMapping",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Viewed",
- "placeholderRight": "e.g: Viewed Product"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/singular/db_config.json b/data/destinations/singular/db_config.json
deleted file mode 100644
index 136b9c4d4..000000000
--- a/data/destinations/singular/db_config.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "SINGULAR",
- "displayName": "Singular",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "apiSecret",
- "sessionEventList",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "flutter",
- "reactnative",
- "cordova",
- "web",
- "amp",
- "cloud",
- "warehouse"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "apiSecret",
- "sessionEventList",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "android": [
- "useNativeSDK"
- ],
- "ios": [
- "useNativeSDK"
- ],
- "reactnative": [
- "useNativeSDK"
- ],
- "cordova": [
- "useNativeSDK"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/singular/metadata.json b/data/destinations/singular/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/singular/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/singular/schema.json b/data/destinations/singular/schema.json
deleted file mode 100644
index f2f7dce18..000000000
--- a/data/destinations/singular/schema.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string"
- },
- "apiSecret": {
- "type": "string"
- },
- "sessionEventList": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "android": {
- "type": "boolean"
- },
- "ios": {
- "type": "boolean"
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/singular/ui_config.json b/data/destinations/singular/ui_config.json
deleted file mode 100644
index 4b106adf5..000000000
--- a/data/destinations/singular/ui_config.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^[a-zA-Z0-9_]*$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g: abcd_456e5678",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Secret",
- "value": "apiSecret",
- "regex": "^[a-zA-Z0-9]*$",
- "regexErrorMessage": "Invalid Secret Key",
- "required": false,
- "placeholder": "e.g: r344c6e48c0r87y6iio567b67ad61324",
- "secret": true
- },
- {
- "type": "dynamicCustomForm",
- "value": "sessionEventList",
- "label": "Session Event Name",
- "footerNote": "The event name to use as a Session event",
- "customFields": [
- {
- "type": "textInput",
- "value": "sessionEventName",
- "required": false,
- "placeholder": "e.g: Session Event Name"
- }
- ]
- }
- ]
- },
- {
- "title": "Native SDK",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use device-mode to send events",
- "value": "useNativeSDK",
- "default": true
- }
- ]
- },
- {
- "title": "Client-side Events Filtering",
- "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
- "fields": [
- {
- "type": "singleSelect",
- "value": "eventFilteringOption",
- "required": false,
- "options": [
- {
- "name": "Disable",
- "value": "disable"
- },
- {
- "name": "Allowlist",
- "value": "whitelistedEvents"
- },
- {
- "name": "Denylist",
- "value": "blacklistedEvents"
- }
- ],
- "defaultOption": {
- "name": "Disable",
- "value": "disable"
- }
- },
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedEvents",
- "label": "Allowlist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Anonymous Page Visit"
- }
- ]
- },
- {
- "type": "dynamicCustomForm",
- "value": "blacklistedEvents",
- "label": "Denylist",
- "customFields": [
- {
- "type": "textInput",
- "value": "eventName",
- "required": false,
- "placeholder": "e.g: Credit Card Added"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/slack/db_config.json b/data/destinations/slack/db_config.json
deleted file mode 100644
index 9e2f093d8..000000000
--- a/data/destinations/slack/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "SLACK",
- "displayName": "Slack",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "eventChannelSettings",
- "identifyTemplate",
- "eventTemplateSettings",
- "webhookUrl",
- "whitelistedTraitsSettings"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/slack/metadata.json b/data/destinations/slack/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/slack/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/slack/schema.json b/data/destinations/slack/schema.json
deleted file mode 100644
index fbe8c72b6..000000000
--- a/data/destinations/slack/schema.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})"
- },
- "identifyTemplate": {
- "type": "string"
- },
- "eventChannelSettings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventChannel": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventRegex": {
- "type": "boolean"
- }
- }
- }
- },
- "eventTemplateSettings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventTemplate": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$"
- },
- "eventRegex": {
- "type": "boolean"
- }
- }
- }
- },
- "whitelistedTraitsSettings": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "trait": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/slack/ui_config.json b/data/destinations/slack/ui_config.json
deleted file mode 100644
index a6b41a869..000000000
--- a/data/destinations/slack/ui_config.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Event Channels",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "eventChannelSettings",
- "customFields": [
- {
- "type": "textInput",
- "label": "Event Name",
- "value": "eventName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Event Name",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- },
- {
- "type": "textInput",
- "label": "Event Channel",
- "value": "eventChannel",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Event Channel",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- },
- {
- "type": "checkbox",
- "label": "Regex Matching",
- "value": "eventRegex",
- "default": false
- }
- ]
- }
- ]
- },
- {
- "title": "Identify Template",
- "fields": [
- {
- "type": "textInput",
- "label": "Identify Template",
- "value": "identifyTemplate",
- "regex": "^(.{0,1000})$",
- "regexErrorMessage": "Invalid Identify Template",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- }
- ]
- },
- {
- "title": "Event Template",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "eventTemplateSettings",
- "customFields": [
- {
- "type": "textInput",
- "label": "Event Name",
- "value": "eventName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Event Name",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- },
- {
- "type": "textInput",
- "label": "Event Template",
- "value": "eventTemplate",
- "regex": "^(.{0,1000})$",
- "regexErrorMessage": "Invalid Event Template",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- },
- {
- "type": "checkbox",
- "label": "Regex Matching",
- "value": "eventRegex",
- "default": false
- }
- ]
- }
- ]
- },
- {
- "title": "Incoming Webhook Url",
- "fields": [
- {
- "type": "textInput",
- "label": "Webhook Url",
- "value": "webhookUrl",
- "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
- "regexErrorMessage": "Invalid Webhook Url",
- "required": true,
- "placeholder": "e.g: ABCDEFG"
- }
- ]
- },
- {
- "title": "Whitelisted Traits",
- "fields": [
- {
- "type": "dynamicCustomForm",
- "value": "whitelistedTraitsSettings",
- "customFields": [
- {
- "type": "textInput",
- "label": "Trait",
- "value": "trait",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Trait",
- "required": false,
- "placeholder": "e.g: ABCDEFG"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/snap_pixel/db_config.json b/data/destinations/snap_pixel/db_config.json
deleted file mode 100644
index 140e817f6..000000000
--- a/data/destinations/snap_pixel/db_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "SNAP_PIXEL",
- "displayName": "Snap Pixel",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "pixelId",
- "hashMethod",
- "eventMappingFromConfig",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption",
- "deduplicationKey",
- "enableDeduplication"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "pixelId",
- "hashMethod",
- "eventMappingFromConfig",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "deduplicationKey",
- "enableDeduplication"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "pixelId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snap_pixel/metadata.json b/data/destinations/snap_pixel/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/snap_pixel/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snap_pixel/schema.json b/data/destinations/snap_pixel/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/snap_pixel/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_conversion/db_config.json b/data/destinations/snapchat_conversion/db_config.json
deleted file mode 100644
index 457e2c720..000000000
--- a/data/destinations/snapchat_conversion/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "SNAPCHAT_CONVERSION",
- "displayName": "Snapchat Conversion",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "pixelId",
- "snapAppId",
- "appId",
- "rudderEventsToSnapEvents",
- "enableDeduplication",
- "deduplicationKey"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_conversion/metadata.json b/data/destinations/snapchat_conversion/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/snapchat_conversion/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_conversion/schema.json b/data/destinations/snapchat_conversion/schema.json
deleted file mode 100644
index 3b8a3744b..000000000
--- a/data/destinations/snapchat_conversion/schema.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$"
- },
- "pixelId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "snapAppId": {
- "type": "string"
- },
- "appId": {
- "type": "string"
- },
- "rudderEventsToSnapEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "enableDeduplication": {
- "type": "boolean"
- },
- "deduplicationKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_conversion/ui_config.json b/data/destinations/snapchat_conversion/ui_config.json
deleted file mode 100644
index 83dba9356..000000000
--- a/data/destinations/snapchat_conversion/ui_config.json
+++ /dev/null
@@ -1,215 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiKey",
- "regex": "^(.{1,500})$",
- "required": true,
- "placeholder": "e.g. MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
- "secret": true,
- "footerNote": "Your Conversion API Token"
- },
- {
- "type": "textInput",
- "label": "Pixel ID",
- "value": "pixelId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Pixel ID",
- "required": false,
- "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e",
- "secret": true,
- "footerNote": "Your Pixel ID"
- },
- {
- "type": "textInput",
- "label": "Snap App ID",
- "value": "snapAppId",
- "required": false,
- "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e",
- "secret": true,
- "footerNote": "Your Snap App ID"
- },
- {
- "type": "textInput",
- "label": "App ID",
- "value": "appId",
- "required": false,
- "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e",
- "secret": true,
- "footerNote": "Your App ID"
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "dynamicSelectForm",
- "label": "Map your events with Snapchat Standard Events",
- "labelLeft": "Event Name",
- "labelRight": "Standard Event Name",
- "value": "rudderEventsToSnapEvents",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g. Product Searched",
- "options": [
- {
- "name": "Products Searched",
- "value": "products_searched"
- },
- {
- "name": "Product List Viewed",
- "value": "product_list_viewed"
- },
- {
- "name": "Promotion Viewed",
- "value": "promotion_viewed"
- },
- {
- "name": "Promotion Clicked",
- "value": "promotion_clicked"
- },
- {
- "name": "Product Viewed",
- "value": "product_viewed"
- },
- {
- "name": "Checkout Started",
- "value": "checkout_started"
- },
- {
- "name": "Payment Info Entered",
- "value": "payment_info_entered"
- },
- {
- "name": "Order Completed",
- "value": "order_completed"
- },
- {
- "name": "Product Added",
- "value": "product_added"
- },
- {
- "name": "Product Added To Wishlist",
- "value": "product_added_to_wishlist"
- },
- {
- "name": "Sign Up",
- "value": "sign_up"
- },
- {
- "name": "App Open",
- "value": "app_open"
- },
- {
- "name": "Save",
- "value": "save"
- },
- {
- "name": "Subscribe",
- "value": "subscribe"
- },
- {
- "name": "Complete Tutorial",
- "value": "complete_tutorial"
- },
- {
- "name": "Invite",
- "value": "invite"
- },
- {
- "name": "Login",
- "value": "login"
- },
- {
- "name": "Share",
- "value": "share"
- },
- {
- "name": "Reserve",
- "value": "reserve"
- },
- {
- "name": "Achievement Unlocked",
- "value": "achievement_unlocked"
- },
- {
- "name": "Spent Credits",
- "value": "spent_credits"
- },
- {
- "name": "Rate",
- "value": "rate"
- },
- {
- "name": "Start Trial",
- "value": "start_trial"
- },
- {
- "name": "List View",
- "value": "list_view"
- },
- {
- "name": "Page View",
- "value": "page_view"
- },
- {
- "name": "App Install",
- "value": "app_install"
- },
- {
- "name": "Custom Event 1",
- "value": "custom_event_1"
- },
- {
- "name": "Custom Event 2",
- "value": "custom_event_2"
- },
- {
- "name": "Custom Event 3",
- "value": "custom_event_3"
- },
- {
- "name": "Custom Event 4",
- "value": "custom_event_4"
- },
- {
- "name": "Custom Event 5",
- "value": "custom_event_5"
- }
- ]
- }
- ]
- },
- {
- "title": "Other Settings",
- "fields": [
- {
- "type": "checkbox",
- "label": "Enable Event Deduplication",
- "value": "enableDeduplication",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "enableDeduplication",
- "selectedValue": true
- }
- ],
- "label": "Deduplication Key",
- "value": "deduplicationKey",
- "placeholder": "e.g: messageId",
- "required": false,
- "footerNote": "RudderStack will use this field for deduplication. If nothing is specified, messageId field will be used."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_custom_audience/db_config.json b/data/destinations/snapchat_custom_audience/db_config.json
deleted file mode 100644
index 8b11d0fde..000000000
--- a/data/destinations/snapchat_custom_audience/db_config.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "SNAPCHAT_CUSTOM_AUDIENCE",
- "displayName": "Snapchat Custom Audience",
- "config": {
- "auth": {
- "type": "OAuth",
- "role": "snapchat_custom_audience",
- "rudderScopes": ["delivery"]
- },
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": ["segmentId", "schema", "disableHashing"],
- "excludeKeys": [],
- "supportedSourceTypes": ["cloud", "warehouse"],
- "supportedMessageTypes": ["audiencelist"],
- "destConfig": {
- "defaultConfig": [
- "rudderAccountId",
- "segmentId",
- "schema",
- "disableHashing"
- ]
- },
- "secretKeys": ["segmentId"]
- }
-}
diff --git a/data/destinations/snapchat_custom_audience/metadata.json b/data/destinations/snapchat_custom_audience/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/snapchat_custom_audience/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_custom_audience/schema.json b/data/destinations/snapchat_custom_audience/schema.json
deleted file mode 100644
index 9638b8ba7..000000000
--- a/data/destinations/snapchat_custom_audience/schema.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "segmentId"
- ],
- "properties": {
- "segmentId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "schema": {
- "type": "string",
- "pattern": "^(email|phone|mobileAdId)$"
- },
- "disableHashing": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapchat_custom_audience/ui_config.json b/data/destinations/snapchat_custom_audience/ui_config.json
deleted file mode 100644
index ed4a97e34..000000000
--- a/data/destinations/snapchat_custom_audience/ui_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Segment Id",
- "value": "segmentId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Segment Id",
- "required": true,
- "placeholder": "e.g. 4996042382964722",
- "secret": true
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Schema",
- "value": "schema",
- "required": true,
- "mode": "single",
- "options": [
- {
- "name": "Email",
- "value": "email"
- },
- {
- "name": "Phone",
- "value": "phone"
- },
- {
- "name": "Mobile Ad Id",
- "value": "mobileAdId"
- }
- ],
- "defaultOption": {
- "name": "Email",
- "value": "email"
- },
- "footerNote": "Schema of your Audience"
- },
- {
- "type": "checkbox",
- "label": "Disable Hashing",
- "value": "disableHashing",
- "default": false
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/snapengage/db_config.json b/data/destinations/snapengage/db_config.json
deleted file mode 100644
index 49e13cb04..000000000
--- a/data/destinations/snapengage/db_config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "SNAPENGAGE",
- "displayName": "SnapEngage",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "widgetId",
- "recordLiveChatEvents",
- "updateEventNames",
- "eventsToStandard",
- "eventFilteringOption",
- "blacklistedEvents",
- "whitelistedEvents"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "widgetId",
- "recordLiveChatEvents",
- "updateEventNames",
- "eventsToStandard",
- "eventFilteringOption",
- "blacklistedEvents",
- "whitelistedEvents"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "widgetId"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapengage/metadata.json b/data/destinations/snapengage/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/snapengage/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snapengage/schema.json b/data/destinations/snapengage/schema.json
deleted file mode 100644
index 780b34d0b..000000000
--- a/data/destinations/snapengage/schema.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "required": [
- "widgetId"
- ],
- "type": "object",
- "properties": {
- "widgetId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "recordLiveChatEvents": {
- "type": "boolean"
- },
- "updateEventNames": {
- "type": "boolean"
- },
- "eventsToStandard": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snowflake/db_config.json b/data/destinations/snowflake/db_config.json
deleted file mode 100644
index 5e2860e47..000000000
--- a/data/destinations/snowflake/db_config.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "SNOWFLAKE",
- "displayName": "Snowflake",
- "category": "warehouse",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "cloudSource",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "account",
- "database",
- "warehouse",
- "user",
- "password",
- "cloudProvider",
- "bucketName",
- "containerName",
- "storageIntegration",
- "iamRoleARN",
- "roleBasedAuth",
- "accessKeyID",
- "accessKey",
- "accountName",
- "accountKey",
- "useSASTokens",
- "sasToken",
- "credentials",
- "namespace",
- "prefix",
- "syncFrequency",
- "syncStartAt",
- "enableSSE",
- "excludeWindow",
- "jsonPaths",
- "useRudderStorage"
- ]
- },
- "secretKeys": [
- "password",
- "accessKeyID",
- "accessKey",
- "accountKey",
- "sasToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snowflake/metadata.json b/data/destinations/snowflake/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/snowflake/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snowflake/schema.json b/data/destinations/snowflake/schema.json
deleted file mode 100644
index e348f208b..000000000
--- a/data/destinations/snowflake/schema.json
+++ /dev/null
@@ -1,249 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema",
- "type": "object",
- "required": [
- "account",
- "database",
- "warehouse",
- "user",
- "password",
- "syncFrequency",
- "useRudderStorage"
- ],
- "properties": {
- "account": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "database": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "warehouse": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "user": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "namespace": {
- "type": "string",
- "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
- },
- "syncFrequency": {
- "type": "string",
- "pattern": "^(30|60|180|360|720|1440)$",
- "default": "30"
- },
- "syncStartAt": {
- "type": "string"
- },
- "excludeWindow": {
- "type": "object",
- "required": [
- "excludeWindowStartTime",
- "excludeWindowEndTime"
- ],
- "properties": {
- "excludeWindowStartTime": {
- "type": "string"
- },
- "excludeWindowEndTime": {
- "type": "string"
- }
- }
- },
- "jsonPaths": {
- "type": "string",
- "pattern": "(^env[.].*)|.*"
- },
- "useRudderStorage": {
- "type": "boolean",
- "default": false
- },
- "cloudProvider": {
- "type": "string",
- "pattern": "^(AWS|GCP|AZURE)$"
- }
- },
- "allOf": [
- {
- "if": {
- "properties": {
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "useRudderStorage"
- ]
- },
- "then": {
- "required": [
- "cloudProvider"
- ]
- }
- },
- {
- "if": {
- "properties": {
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "prefix": {
- "type": "string",
- "pattern": "(^env[.].*)|^(.{0,100})$"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "cloudProvider": {
- "const": "AWS"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "cloudProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "iamRoleARN": {
- "type": "string"
- },
- "roleBasedAuth": {
- "type": "boolean"
- },
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
- },
- "accessKeyID": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- },
- "accessKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{0,100})$"
- },
- "enableSSE": {
- "type": "boolean"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "cloudProvider": {
- "const": "GCP"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "cloudProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "bucketName": {
- "type": "string",
- "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
- },
- "credentials": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "storageIntegration": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- }
- }
- },
- {
- "if": {
- "properties": {
- "cloudProvider": {
- "const": "AZURE"
- },
- "useRudderStorage": {
- "const": false
- }
- },
- "required": [
- "cloudProvider",
- "useRudderStorage"
- ]
- },
- "then": {
- "properties": {
- "containerName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
- },
- "accountName": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- },
- "storageIntegration": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "anyOf": [
- {
- "properties": {
- "accountKey": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.{1,100})$"
- }
- },
- "required": [
- "accountKey"
- ]
- },
- {
- "properties": {
- "sasToken": {
- "type": "string",
- "pattern": "(^env[.].+)|^(.+)$"
- },
- "useSASTokens": {
- "const": true
- }
- },
- "required": [
- "sasToken",
- "useSASTokens"
- ]
- }
- ]
- }
- }
- ],
- "additionalProperties": true
- }
-}
\ No newline at end of file
diff --git a/data/destinations/snowflake/ui_config.json b/data/destinations/snowflake/ui_config.json
deleted file mode 100644
index 5170e6923..000000000
--- a/data/destinations/snowflake/ui_config.json
+++ /dev/null
@@ -1,538 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "Account",
- "value": "account",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Account",
- "placeholder": "e.g: qya54180.us-east-1",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "database",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Database",
- "placeholder": "e.g: RUDDER_EVENTS",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Warehouse",
- "value": "warehouse",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Database",
- "placeholder": "e.g: RUDDER_WAREHOUSE",
- "required": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid User",
- "placeholder": "e.g: RUDDER_USER",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "regex": ".*",
- "placeholder": "e.g: RUDDER_PASSWORD",
- "required": true,
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Namespace",
- "labelNote": "Schema name for the warehouse where the tables are created",
- "value": "namespace",
- "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
- "regexErrorMessage": "Invalid Namespace",
- "required": false,
- "placeholder": "e.g: RUDDER_NAMESPACE",
- "footerNote": "Default will be the source name"
- },
- {
- "type": "singleSelect",
- "label": "Sync Frequency",
- "value": "syncFrequency",
- "options": [
- {
- "name": "Every 30 minutes",
- "value": "30"
- },
- {
- "name": "Every 1 hour",
- "value": "60"
- },
- {
- "name": "Every 3 hours",
- "value": "180"
- },
- {
- "name": "Every 6 hours",
- "value": "360"
- },
- {
- "name": "Every 12 hours",
- "value": "720"
- },
- {
- "name": "Every 24 hours",
- "value": "1440"
- }
- ],
- "defaultOption": {
- "name": "Every 30 minutes",
- "value": "30"
- },
- "required": false
- },
- {
- "type": "timePicker",
- "label": "Sync Starting At (Optional)",
- "value": "syncStartAt",
- "options": {
- "omitSeconds": true,
- "minuteStep": 15
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- },
- {
- "type": "timeRangePicker",
- "label": "Exclude window (Optional)",
- "value": "excludeWindow",
- "startTime": {
- "label": "start time",
- "value": "excludeWindowStartTime"
- },
- "endTime": {
- "label": "end time",
- "value": "excludeWindowEndTime"
- },
- "options": {
- "omitSeconds": true,
- "minuteStep": 1
- },
- "required": false,
- "footerNote": "Note: Please specify time in UTC"
- },
- {
- "type": "textInput",
- "label": "Json columns (Optional)",
- "labelNote": "Specify required json properties in dot notation separated by commas",
- "value": "jsonPaths",
- "regex": "^(.*)$",
- "placeholder": "e.g: testMap.nestedMap, testArray",
- "required": false,
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/data-warehouse-integrations/snowflake/#configuring-snowflake-destination-in-rudderstack",
- "text": "Instructions for setting up the json columns"
- }
- }
- ]
- },
- {
- "title": "Object Storage Configuration",
- "fields": [
- {
- "type": "checkbox",
- "label": "Use RudderStack managed object storage",
- "value": "useRudderStorage",
- "default": false,
- "footerNote": "Note: Only available for RudderStack managed data planes"
- },
- {
- "type": "singleSelect",
- "label": "Choose your Cloud",
- "value": "cloudProvider",
- "options": [
- {
- "name": "Amazon Web Services",
- "value": "AWS"
- },
- {
- "name": "Google Cloud Platform",
- "value": "GCP"
- },
- {
- "name": "Microsoft Azure",
- "value": "AZURE"
- }
- ],
- "defaultOption": {
- "name": "Amazon Web Services",
- "value": "AWS"
- },
- "required": true,
- "preRequisiteField": {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging S3 Storage Bucket Name",
- "labelNote": "S3 Bucket to store data before loading into Snowflake",
- "value": "bucketName",
- "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
- "placeholder": "e.g: s3-event-logs",
- "required": true,
- "footerNote": "Please make sure the bucket exists in your S3"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "GCP"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging GCS Object Storage Bucket Name",
- "labelNote": "GCS Bucket to store data before loading into Snowflake",
- "value": "bucketName",
- "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
- "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
- "required": true,
- "placeholder": "e.g: gcs-event-logs",
- "footerNote": "Please make sure the bucket exists in your GCS"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AZURE"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Staging Azure Blob Storage Container Name",
- "labelNote": "Container to store data before loading into Snowflake",
- "value": "containerName",
- "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
- "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
- "required": true,
- "placeholder": "e.g: azure-event-logs",
- "footerNote": "Please make sure the container exists in your Azure Blob Storage"
- },
- {
- "type": "textInput",
- "label": "Prefix",
- "value": "prefix",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Prefix",
- "required": false,
- "placeholder": "e.g: rudder",
- "preRequisiteField": {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Storage Integration",
- "value": "storageIntegration",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Storage Integration",
- "placeholder": "e.g: aws_int",
- "footerURL": {
- "link": "https://docs.snowflake.com/en/user-guide/data-load-s3-config.html#option-1-configuring-a-snowflake-storage-integration",
- "text": "Instructions for setting up the integration"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "GCP"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Storage Integration",
- "value": "storageIntegration",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Storage Integration",
- "required": true,
- "placeholder": "e.g: gcs_int",
- "footerURL": {
- "link": "https://docs.snowflake.com/en/user-guide/data-load-gcs-config.html",
- "text": "Instructions for setting up the integration"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AZURE"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Storage Integration",
- "value": "storageIntegration",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Storage Integration",
- "required": true,
- "placeholder": "e.g: azure_int",
- "footerURL": {
- "link": "https://docs.snowflake.com/en/user-guide/data-load-azure-config.html#option-1-configuring-a-snowflake-storage-integration",
- "text": "Instructions for setting up the integration"
- }
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Role Based Authentication",
- "value": "roleBasedAuth",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": true
- }
- ],
- "label": "IAM Role ARN",
- "value": "iamRoleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
- "footerURL": {
- "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
- "text": "Instructions for creating IAM Role"
- }
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Access Key ID",
- "required": true,
- "placeholder": "e.g: access-key-id",
- "secret": true
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "roleBasedAuth",
- "selectedValue": false
- }
- ],
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid AWS Secret Access Key",
- "required": true,
- "placeholder": "e.g: secret-access-key",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AWS"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Enable Server Side Encryption For S3?",
- "value": "enableSSE",
- "default": false
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AZURE"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Name",
- "value": "accountName",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
- "required": true,
- "placeholder": "e.g: account-name"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AZURE"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": false
- }
- ],
- "label": "Azure Blob Storage Account Key",
- "value": "accountKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
- "required": true,
- "secret": true,
- "placeholder": "e.g: account-key"
- },
- {
- "type": "textInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AZURE"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- },
- {
- "name": "useSASTokens",
- "selectedValue": true
- }
- ],
- "label": "Azure Blob Storage SAS Token",
- "value": "sasToken",
- "regex": "^(.+)$",
- "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
- "required": true,
- "placeholder": "e.g: sas-token",
- "secret": true
- },
- {
- "type": "checkbox",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "AZURE"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Use shared access signature (SAS) Tokens",
- "value": "useSASTokens",
- "default": false,
- "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": [
- {
- "name": "cloudProvider",
- "selectedValue": "GCP"
- },
- {
- "name": "useRudderStorage",
- "selectedValue": false
- }
- ],
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/splitio/db_config.json b/data/destinations/splitio/db_config.json
deleted file mode 100644
index 95dc54c27..000000000
--- a/data/destinations/splitio/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "SPLITIO",
- "displayName": "Split.io",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "environment",
- "trafficType"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/splitio/metadata.json b/data/destinations/splitio/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/splitio/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/splitio/schema.json b/data/destinations/splitio/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/splitio/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/splitio/ui_config.json b/data/destinations/splitio/ui_config.json
deleted file mode 100644
index 49d52946d..000000000
--- a/data/destinations/splitio/ui_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "1. Connection Credentials",
- "fields": [
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "required": true,
- "placeholder": "e.g: 45lgoasdphhsskbsglho22quopat4850glv0",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Environment",
- "value": "environment",
- "required": false,
- "placeholder": "e.g: production",
- "secret": false
- }
- ]
- },
- {
- "title": "2. Information on Traffic",
- "fields": [
- {
- "type": "textInput",
- "label": "Traffic Type",
- "value": "trafficType",
- "placeholder": "e.g: user",
- "required": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/statsig/db_config.json b/data/destinations/statsig/db_config.json
deleted file mode 100644
index 55fe0fadd..000000000
--- a/data/destinations/statsig/db_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "STATSIG",
- "displayName": "Statsig",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "alias",
- "group",
- "identify",
- "page",
- "screen",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "secretKey"
- ]
- },
- "secretKeys": [
- "secretKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/statsig/metadata.json b/data/destinations/statsig/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/statsig/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/statsig/schema.json b/data/destinations/statsig/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/statsig/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/statsig/ui_config.json b/data/destinations/statsig/ui_config.json
deleted file mode 100644
index d5c40aa59..000000000
--- a/data/destinations/statsig/ui_config.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Secret Key",
- "value": "secretKey",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. secret-tHe5ecr37",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/tiktok_ads/db_config.json b/data/destinations/tiktok_ads/db_config.json
deleted file mode 100644
index ac44bfd74..000000000
--- a/data/destinations/tiktok_ads/db_config.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "TIKTOK_ADS",
- "displayName": "TikTok Ads",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "cloud",
- "mobile"
- ],
- "supportedMessageTypes": [
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "accessToken",
- "pixelCode",
- "hashUserProperties",
- "eventsToStandard"
- ]
- },
- "secretKeys": [
- "accessToken",
- "pixelCode"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/tiktok_ads/metadata.json b/data/destinations/tiktok_ads/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/tiktok_ads/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/tiktok_ads/schema.json b/data/destinations/tiktok_ads/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/tiktok_ads/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/tiktok_ads/ui_config.json b/data/destinations/tiktok_ads/ui_config.json
deleted file mode 100644
index 0271167a8..000000000
--- a/data/destinations/tiktok_ads/ui_config.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Access Token",
- "value": "accessToken",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. 1234ac663758946dfea3520b394bbac611b371f7",
- "secret": true,
- "footerNote": "TikTok Long Term Access Token"
- },
- {
- "type": "textInput",
- "label": "Pixel Code",
- "value": "pixelCode",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Pixel Code",
- "required": true,
- "placeholder": "e.g: A1T8T4UYGVIQA8ORZMX9",
- "secret": true,
- "footerNote": "Your Pixel Code"
- },
- {
- "type": "checkbox",
- "label": "Hash Contextual User Properties (SHA-256)",
- "value": "hashUserProperties",
- "default": true,
- "footerNote": "To hash user properties like email and phone number using SHA-256. Only applicable for cloud mode."
- }
- ]
- },
- {
- "title": "Event Settings",
- "fields": [
- {
- "type": "dynamicSelectForm",
- "label": "Mapping to trigger the TikTok Ads standard events for the respective Events",
- "labelLeft": "Event Name",
- "labelRight": "Standard Events",
- "value": "eventsToStandard",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g: Sign up completed",
- "options": [
- {
- "name": "Add Payment Info",
- "value": "AddPaymentInfo"
- },
- {
- "name": "Add To Cart",
- "value": "AddToCart"
- },
- {
- "name": "Add To Wishlist",
- "value": "AddToWishlist"
- },
- {
- "name": "Click Button",
- "value": "ClickButton"
- },
- {
- "name": "Complete Payment",
- "value": "CompletePayment"
- },
- {
- "name": "Complete Registration",
- "value": "CompleteRegistration"
- },
- {
- "name": "Contact",
- "value": "Contact"
- },
- {
- "name": "Download",
- "value": "Download"
- },
- {
- "name": "Initiate Checkout",
- "value": "InitiateCheckout"
- },
- {
- "name": "Place An Order",
- "value": "PlaceAnOrder"
- },
- {
- "name": "Search",
- "value": "Search"
- },
- {
- "name": "Submit Form",
- "value": "SubmitForm"
- },
- {
- "name": "Subscribe",
- "value": "Subscribe"
- },
- {
- "name": "View Content",
- "value": "ViewContent"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/trengo/db_config.json b/data/destinations/trengo/db_config.json
deleted file mode 100644
index 9a6962360..000000000
--- a/data/destinations/trengo/db_config.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "TRENGO",
- "displayName": "Trengo",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiToken",
- "channelId",
- "channelIdentifier",
- "enableDedup",
- "eventTemplateMap"
- ]
- },
- "secretKeys": [
- "apiToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/trengo/metadata.json b/data/destinations/trengo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/trengo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/trengo/schema.json b/data/destinations/trengo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/trengo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/trengo/ui_config.json b/data/destinations/trengo/ui_config.json
deleted file mode 100644
index a863e4bf5..000000000
--- a/data/destinations/trengo/ui_config.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiToken",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwian..",
- "secret": true
- }
- ]
- },
- {
- "title": "Destination Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Channel Id",
- "value": "channelId",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: 89002"
- },
- {
- "type": "singleSelect",
- "label": "Channel Identifier",
- "value": "channelIdentifier",
- "options": [
- {
- "name": "Email",
- "value": "email"
- },
- {
- "name": "Phone",
- "value": "phone"
- }
- ],
- "defaultOption": {
- "name": "Email",
- "value": "email"
- },
- "required": true
- },
- {
- "type": "checkbox",
- "label": "Enable deduplication for Contacts",
- "value": "enableDedup",
- "default": true,
- "footerNote": "Note: Disabling this field will create a possibility to create duplicate contacts, before disabling it view the destination docs to understand the full implications"
- },
- {
- "type": "dynamicForm",
- "label": "Map events with template",
- "labelLeft": "Event Name",
- "labelRight": "Event Template",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g: Product Purchased",
- "placeholderRight": "e.g: {{event}} Triggered",
- "value": "eventTemplateMap",
- "footerNote": "You can map specific events with custom templates. Note:To track events to Trengo adding event name in the key is mandatory. For details please view destination docs."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/tvsquared/db_config.json b/data/destinations/tvsquared/db_config.json
deleted file mode 100644
index 7db7b4596..000000000
--- a/data/destinations/tvsquared/db_config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "TVSQUARED",
- "displayName": "TVSquared",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "brandId",
- "clientId",
- "eventWhiteList",
- "customMetrics",
- "blacklistedEvents",
- "whitelistedEvents",
- "oneTrustCookieCategories",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "brandId",
- "clientId",
- "eventWhiteList",
- "customMetrics",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": [
- "credentials"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/tvsquared/metadata.json b/data/destinations/tvsquared/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/tvsquared/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/tvsquared/schema.json b/data/destinations/tvsquared/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/tvsquared/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/user/db_config.json b/data/destinations/user/db_config.json
deleted file mode 100644
index d8a0f21f9..000000000
--- a/data/destinations/user/db_config.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "name": "USER",
- "displayName": "user.com",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "appSubdomain",
- "userAttributesMapping",
- "userEvents",
- "rsEventName",
- "userEventName",
- "eventProperties",
- "companyAttributesMapping"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "track",
- "identify",
- "group",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "apiKey",
- "appSubdomain",
- "userAttributesMapping",
- "userEvents",
- "rsEventName",
- "userEventName",
- "eventProperties",
- "companyAttributesMapping"
- ]
- },
- "secretKeys": [
- "apiKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/user/metadata.json b/data/destinations/user/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/user/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/user/schema.json b/data/destinations/user/schema.json
deleted file mode 100644
index b778acd05..000000000
--- a/data/destinations/user/schema.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "apiKey"
- ],
- "properties": {
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$"
- },
- "appSubdomain": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$"
- },
- "userAttributesMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "userEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "rsEventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "userEventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "eventProperties": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- },
- "companyAttributesMapping": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/user/ui_config.json b/data/destinations/user/ui_config.json
deleted file mode 100644
index e77247ddf..000000000
--- a/data/destinations/user/ui_config.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Public REST API Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Key",
- "required": true,
- "placeholder": "e.g: 1d6583b196d34de28a3g19ahadde4b0z"
- },
- {
- "type": "textInput",
- "label": "Your App Subdomain",
- "value": "appSubdomain",
- "regex": "^(.{0,500})$",
- "regexErrorMessage": "Invalid App Subdomain",
- "required": true,
- "placeholder": "e.g: commander"
- }
- ]
- },
- {
- "title": "Mapping Configurations",
- "fields": [
- {
- "type": "dynamicForm",
- "label": "Map Rudder user attributes to User.com user attributes",
- "value": "userAttributesMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. userIndustry",
- "placeholderRight": "e.g. industry",
- "labelLeft": "Rudder Property",
- "labelRight": "user.com user attribute"
- },
- {
- "type": "dynamicCustomForm",
- "label": "Map RudderStack event name to User.com event name",
- "value": "userEvents",
- "customFields": [
- {
- "type": "textInput",
- "label": "RudderStack Event Name",
- "value": "rsEventName",
- "regex": "^(.{0,100})$",
- "required": false,
- "placeholder": "e.g Products Searched",
- "footerNote": "Enter the RudderStack event name you want to map"
- },
- {
- "type": "textInput",
- "label": "User.com Event Name",
- "value": "userEventName",
- "regex": "^(.{0,100})$",
- "required": false,
- "placeholder": "e.g Search",
- "footerNote": "Enter the corresponding User.com event name you want to map"
- },
- {
- "type": "dynamicForm",
- "label": "Map your Event Property",
- "value": "eventProperties",
- "labelLeft": "RudderStack Property Name",
- "labelRight": "User.com Event Attribute Name",
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g firstName",
- "placeholderRight": "e.g first_name"
- }
- ]
- },
- {
- "type": "dynamicForm",
- "label": "Map Rudder company attributes to User.com company attributes",
- "value": "companyAttributesMapping",
- "required": false,
- "keyLeft": "from",
- "keyRight": "to",
- "placeholderLeft": "e.g. companyCategoty",
- "placeholderRight": "e.g. category",
- "labelLeft": "Rudder Property",
- "labelRight": "user.com company attribute"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/userlist/db_config.json b/data/destinations/userlist/db_config.json
deleted file mode 100644
index 32dd68a45..000000000
--- a/data/destinations/userlist/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "USERLIST",
- "displayName": "Userlist",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "pushKey"
- ]
- },
- "secretKeys": [
- "pushKey"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/userlist/metadata.json b/data/destinations/userlist/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/userlist/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/userlist/schema.json b/data/destinations/userlist/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/userlist/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/userlist/ui_config.json b/data/destinations/userlist/ui_config.json
deleted file mode 100644
index 00a8ec56c..000000000
--- a/data/destinations/userlist/ui_config.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Userlist Push Key",
- "value": "pushKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Userlist Push Key",
- "required": true,
- "placeholder": "e.g: sk_UuCIkdGmSnN4OaBCCFOuJaBcb3O2wD8S"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/variance/db_config.json b/data/destinations/variance/db_config.json
deleted file mode 100644
index b3d1fc95a..000000000
--- a/data/destinations/variance/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "VARIANCE",
- "displayName": "Variance",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "cdkEnabled": true,
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "destConfig": {
- "defaultConfig": [
- "webhookUrl",
- "authHeader"
- ]
- },
- "secretKeys": [
- "authHeader"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/variance/metadata.json b/data/destinations/variance/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/variance/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/variance/schema.json b/data/destinations/variance/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/destinations/variance/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/destinations/variance/ui_config.json b/data/destinations/variance/ui_config.json
deleted file mode 100644
index c47472a94..000000000
--- a/data/destinations/variance/ui_config.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Webhook URL",
- "value": "webhookUrl",
- "required": true,
- "placeholder": "https://your-org.variance.com",
- "regex": "^(?!.*\\.ngrok\\.io).*"
- },
- {
- "type": "textInput",
- "label": "Authorization Header Value",
- "value": "authHeader",
- "required": true,
- "placeholder": "",
- "regex": ".*",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/vero/db_config.json b/data/destinations/vero/db_config.json
deleted file mode 100644
index e25e98a8d..000000000
--- a/data/destinations/vero/db_config.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "VERO",
- "displayName": "Vero",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "apiKey",
- "authToken",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption",
- "oneTrustCookieCategories"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "amp",
- "android",
- "cordova",
- "cloud",
- "flutter",
- "ios",
- "reactnative",
- "unity",
- "warehouse",
- "web"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page",
- "screen",
- "alias"
- ],
- "destConfig": {
- "defaultConfig": [
- "authToken",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "apiKey",
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/vero/metadata.json b/data/destinations/vero/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/vero/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/vero/schema.json b/data/destinations/vero/schema.json
deleted file mode 100644
index 029a8cbb9..000000000
--- a/data/destinations/vero/schema.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [],
- "properties": {
- "apiKey": {
- "type": "object",
- "properties": {
- "web": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- },
- "authToken": {
- "type": "string"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/vwo/db_config.json b/data/destinations/vwo/db_config.json
deleted file mode 100644
index 57ab58605..000000000
--- a/data/destinations/vwo/db_config.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "VWO",
- "displayName": "VWO",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [
- "accountId",
- "isSPA",
- "sendExperimentTrack",
- "sendExperimentIdentify",
- "libraryTolerance",
- "settingsTolerance",
- "useExistingJquery",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web"
- ],
- "destConfig": {
- "defaultConfig": [
- "accountId",
- "isSPA",
- "sendExperimentTrack",
- "sendExperimentIdentify",
- "libraryTolerance",
- "settingsTolerance",
- "useExistingJquery",
- "blacklistedEvents",
- "whitelistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- },
- "secretKeys": []
- }
-}
\ No newline at end of file
diff --git a/data/destinations/vwo/metadata.json b/data/destinations/vwo/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/vwo/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/vwo/schema.json b/data/destinations/vwo/schema.json
deleted file mode 100644
index a3dbc566f..000000000
--- a/data/destinations/vwo/schema.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "accountId"
- ],
- "properties": {
- "accountId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "isSPA": {
- "type": "boolean"
- },
- "sendExperimentTrack": {
- "type": "boolean"
- },
- "sendExperimentIdentify": {
- "type": "boolean"
- },
- "libraryTolerance": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "settingsTolerance": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "useExistingJquery": {
- "type": "boolean"
- },
- "eventFilteringOption": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/webengage/db_config.json b/data/destinations/webengage/db_config.json
deleted file mode 100644
index fc3a9a6f9..000000000
--- a/data/destinations/webengage/db_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "WEBENGAGE",
- "displayName": "WebEngage",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "web",
- "cloud",
- "mobile",
- "android",
- "ios",
- "unity",
- "amp",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page",
- "screen"
- ],
- "destConfig": {
- "defaultConfig": [
- "licenseCode",
- "apiKey",
- "dataCenter"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/webengage/metadata.json b/data/destinations/webengage/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/webengage/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/webengage/schema.json b/data/destinations/webengage/schema.json
deleted file mode 100644
index a9ba2302a..000000000
--- a/data/destinations/webengage/schema.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "licenseCode",
- "apiKey",
- "dataCenter"
- ],
- "properties": {
- "licenseCode": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "apiKey": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "dataCenter": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(standard|ind)$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/webengage/ui_config.json b/data/destinations/webengage/ui_config.json
deleted file mode 100644
index c5c1225ce..000000000
--- a/data/destinations/webengage/ui_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "License Code",
- "value": "licenseCode",
- "regex": "^(.{1,100})$",
- "required": true,
- "placeholder": "e.g. b4a29aba",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Api Key",
- "value": "apiKey",
- "regex": "^(.{1,100})$",
- "required": true,
- "placeholder": "e.g. b4a29aba17jmbad7b6c1a5asjghj",
- "secret": true
- },
- {
- "type": "singleSelect",
- "label": "Data Center",
- "value": "dataCenter",
- "options": [
- {
- "name": "Standard",
- "value": "standard"
- },
- {
- "name": "IND",
- "value": "ind"
- }
- ],
- "defaultOption": {
- "name": "Standard",
- "value": "standard"
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/webhook/db_config.json b/data/destinations/webhook/db_config.json
deleted file mode 100644
index 68793b1c5..000000000
--- a/data/destinations/webhook/db_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "WEBHOOK",
- "displayName": "Webhook",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": false,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "destConfig": {
- "defaultConfig": [
- "webhookUrl",
- "webhookMethod",
- "headers"
- ]
- },
- "secretKeys": [
- "headers.to"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/webhook/metadata.json b/data/destinations/webhook/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/webhook/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/woopra/db_config.json b/data/destinations/woopra/db_config.json
deleted file mode 100644
index 77f1ae0b9..000000000
--- a/data/destinations/woopra/db_config.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "WOOPRA",
- "displayName": "WOOPRA",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "projectName",
- "cookieName",
- "cookiePath",
- "cookieDomain",
- "clickTracking",
- "downloadTracking",
- "hideCampaign",
- "idleTimeout",
- "ignoreQueryUrl",
- "outgoingIgnoreSubdomain",
- "outgoingTracking",
- "whitelistedEvents",
- "blacklistedEvents",
- "eventFilteringOption"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track",
- "page"
- ],
- "destConfig": {
- "defaultConfig": [
- "projectName",
- "cookieName",
- "cookiePath",
- "cookieDomain",
- "clickTracking",
- "downloadTracking",
- "hideCampaign",
- "idleTimeout",
- "ignoreQueryUrl",
- "outgoingIgnoreSubdomain",
- "outgoingTracking",
- "whitelistedEvents",
- "blacklistedEvents",
- "eventFilteringOption"
- ],
- "web": [
- "useNativeSDK",
- "oneTrustCookieCategories"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/woopra/metadata.json b/data/destinations/woopra/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/woopra/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/woopra/schema.json b/data/destinations/woopra/schema.json
deleted file mode 100644
index af3f33983..000000000
--- a/data/destinations/woopra/schema.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "projectName"
- ],
- "properties": {
- "projectName": {
- "type": "string",
- "pattern": "^(([a-z0-9]+[.])+[a-z]{1,})$"
- },
- "cookieName": {
- "type": "string"
- },
- "cookieDomain": {
- "type": "string"
- },
- "clickTracking": {
- "type": "boolean"
- },
- "cookiePath": {
- "type": "string"
- },
- "downloadTracking": {
- "type": "boolean"
- },
- "hideCampaign": {
- "type": "boolean"
- },
- "idleTimeout": {
- "type": "string"
- },
- "ignoreQueryUrl": {
- "type": "boolean"
- },
- "outgoingIgnoreSubdomain": {
- "type": "boolean"
- },
- "outgoingTracking": {
- "type": "boolean"
- },
- "whitelistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "blacklistedEvents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "eventName": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "useNativeSDK": {
- "type": "object",
- "properties": {
- "web": {
- "type": "boolean"
- }
- }
- },
- "oneTrustCookieCategories": {
- "type": "object",
- "properties": {
- "web": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "oneTrustCookieCategory": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/wootric/db_config.json b/data/destinations/wootric/db_config.json
deleted file mode 100644
index 54ecef39d..000000000
--- a/data/destinations/wootric/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "WOOTRIC",
- "displayName": "Wootric",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [
- "username",
- "password",
- "accountToken"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "username",
- "password",
- "accountToken"
- ]
- },
- "secretKeys": [
- "password",
- "accountToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/wootric/metadata.json b/data/destinations/wootric/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/wootric/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/wootric/schema.json b/data/destinations/wootric/schema.json
deleted file mode 100644
index c9dc07325..000000000
--- a/data/destinations/wootric/schema.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "username",
- "password",
- "accountToken"
- ],
- "properties": {
- "username": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "password": {
- "type": "string",
- "pattern": "(^env[.].+)|.+"
- },
- "accountToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/wootric/ui_config.json b/data/destinations/wootric/ui_config.json
deleted file mode 100644
index 77ad56106..000000000
--- a/data/destinations/wootric/ui_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Username",
- "value": "username",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid User",
- "required": true,
- "placeholder": "e.g. test@gmail.com",
- "secret": false
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g. password@123",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Account Token",
- "value": "accountToken",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Account Token",
- "required": true,
- "placeholder": "e.g. NPS-123456",
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/yahoo_dsp/db_config.json b/data/destinations/yahoo_dsp/db_config.json
deleted file mode 100644
index 33e73d35c..000000000
--- a/data/destinations/yahoo_dsp/db_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "YAHOO_DSP",
- "displayName": "Yahoo DSP",
- "config": {
- "transformAt": "router",
- "transformAtV1": "router",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "cloud",
- "warehouse"
- ],
- "syncBehaviours": [],
- "supportedMessageTypes": [
- "audiencelist"
- ],
- "destConfig": {
- "defaultConfig": [
- "clientId",
- "clientSecret",
- "audienceId",
- "accountId",
- "audienceType",
- "hashRequired",
- "seedListType"
- ]
- },
- "secretKeys": [
- "clientId",
- "clientSecret"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/yahoo_dsp/metadata.json b/data/destinations/yahoo_dsp/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/yahoo_dsp/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/yahoo_dsp/schema.json b/data/destinations/yahoo_dsp/schema.json
deleted file mode 100644
index 077a8da56..000000000
--- a/data/destinations/yahoo_dsp/schema.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "clientId",
- "clientSecret",
- "audienceId",
- "accountId"
- ],
- "properties": {
- "clientId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "clientSecret": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
- },
- "audienceId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- },
- "accountId": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
- },
- "audienceType": {
- "type": "string",
- "pattern": "^(EMAIL|DEVICE_ID|IP_ADDRESS)$"
- },
- "seedListType": {
- "type": "string",
- "pattern": "^(GPADVID|IDFA)$"
- },
- "hashRequired": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/yahoo_dsp/ui_config.json b/data/destinations/yahoo_dsp/ui_config.json
deleted file mode 100644
index 73d1cc18b..000000000
--- a/data/destinations/yahoo_dsp/ui_config.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Client Id",
- "value": "clientId",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Client Id",
- "required": true,
- "placeholder": "e.g. b05ebeb8-a223-3cd6-z4c5-9512d3d66d431",
- "secret": true,
- "footerNote": "Put your Client Id here, it will be used for generating access token."
- },
- {
- "type": "textInput",
- "label": "Client Secret",
- "value": "clientSecret",
- "regex": "^(.{1,100})$",
- "regexErrorMessage": "Invalid Client Secret",
- "required": true,
- "placeholder": "e.g: XpewiPsz3yc9LrADR43f9h53jADLccXTykHCcA6eEoFR4rXQ",
- "secret": true,
- "footerNote": "Put your Client Secret here, it will be used for generating access token."
- }
- ]
- },
- {
- "title": "Account Setting",
- "fields": [
- {
- "type": "textInput",
- "label": "Account Id",
- "value": "accountId",
- "regex": "^[0-9]+$",
- "regexErrorMessage": "Invalid Account Id",
- "required": true,
- "placeholder": "e.g. 84223",
- "secret": false,
- "footerNote": "Your Account Id"
- }
- ]
- },
- {
- "title": "Audience Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Audience Type",
- "value": "audienceType",
- "required": true,
- "placeholder": "Email",
- "options": [
- {
- "name": "Email",
- "value": "EMAIL"
- },
- {
- "name": "Device Id",
- "value": "DEVICE_ID"
- },
- {
- "name": "IP Address",
- "value": "IP_ADDRESS"
- }
- ],
- "defaultOption": {
- "name": "Email",
- "value": "EMAIL"
- }
- },
- {
- "type": "singleSelect",
- "label": "Seed List Type",
- "value": "seedListType",
- "required": true,
- "placeholder": "Google (GPADVID)",
- "options": [
- {
- "name": "Google (GPADVID)",
- "value": "GPADVID"
- },
- {
- "name": "Apple (IDFA)",
- "value": "IDFA"
- }
- ],
- "defaultOption": {
- "name": "Google (GPADVID)",
- "value": "GPADVID"
- },
- "preRequisiteField": {
- "name": "audienceType",
- "selectedValue": "DEVICE_ID"
- },
- "footerNote": "Your device type"
- },
- {
- "type": "textInput",
- "label": "Audience Id",
- "value": "audienceId",
- "regex": "^[0-9]+$",
- "regexErrorMessage": "Invalid Audience Id",
- "required": true,
- "placeholder": "e.g. 53213445",
- "secret": false,
- "footerNote": "The audience id of the audience to which you want to sync the data"
- }
- ]
- },
- {
- "title": "Event Setting",
- "fields": [
- {
- "type": "checkbox",
- "label": "Hash Required",
- "value": "hashRequired",
- "default": true,
- "footerNote": "Toggle it off if hashing is not required"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/zapier/db_config.json b/data/destinations/zapier/db_config.json
deleted file mode 100644
index 7aa4fae9f..000000000
--- a/data/destinations/zapier/db_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "ZAPIER",
- "displayName": "Zapier",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "cdkEnabled": true,
- "includeKeys": [
- "zapUrl",
- "trackEventsToZap",
- "pageScreenEventsToZap"
- ],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "reactnative",
- "flutter",
- "cordova",
- "warehouse"
- ],
- "supportedMessageTypes": [
- "track",
- "page",
- "screen"
- ],
- "destConfig": {
- "defaultConfig": [
- "zapUrl",
- "trackEventsToZap",
- "pageScreenEventsToZap"
- ]
- },
- "secretKeys": [
- "zapUrl"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/zapier/metadata.json b/data/destinations/zapier/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/zapier/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/zapier/schema.json b/data/destinations/zapier/schema.json
deleted file mode 100644
index ffaef5204..000000000
--- a/data/destinations/zapier/schema.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "required": [
- "zapUrl"
- ],
- "properties": {
- "zapUrl": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
- },
- "trackEventsToZap": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- },
- "pageScreenEventsToZap": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "from": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "to": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/zapier/ui_config.json b/data/destinations/zapier/ui_config.json
deleted file mode 100644
index 175d9ddc6..000000000
--- a/data/destinations/zapier/ui_config.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Zap URL",
- "value": "zapUrl",
- "regex": "(?!.*\\.ngrok\\.io)^(.{1,100})$",
- "regexErrorMessage": "Invalid Zap URL",
- "required": true,
- "placeholder": "e.g. https://hooks.zapier.com/hooks/catch/123456/abcdefg/",
- "secret": true,
- "footerNote": "Enter the ZAP URL where all your events should go"
- },
- {
- "type": "dynamicForm",
- "label": "Mapping Track Events to a particular Zap",
- "labelLeft": "Event Name",
- "labelRight": "Zap URL",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g: Submit",
- "placeholderRight": "e.g: https://hooks.zapier.com/hooks/catch/123456/abcdefg/",
- "value": "trackEventsToZap",
- "footerNote": "Enter the Track events to be sent to the specified ZAP URL"
- },
- {
- "type": "dynamicForm",
- "label": "Mapping Page/Screen Events to a particular Zap",
- "labelLeft": "Event Name",
- "labelRight": "Zap URL",
- "keyLeft": "from",
- "keyRight": "to",
- "required": false,
- "placeholderLeft": "e.g: Submit",
- "placeholderRight": "e.g: https://hooks.zapier.com/hooks/catch/123456/abcdefg/",
- "value": "pageScreenEventsToZap",
- "footerNote": "Enter the Page or Screen events to be sent to the specified ZAP URL"
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/destinations/zendesk/db_config.json b/data/destinations/zendesk/db_config.json
deleted file mode 100644
index bb6f3958f..000000000
--- a/data/destinations/zendesk/db_config.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "ZENDESK",
- "displayName": "Zendesk",
- "config": {
- "transformAt": "processor",
- "transformAtV1": "processor",
- "saveDestinationResponse": true,
- "includeKeys": [],
- "excludeKeys": [],
- "supportedSourceTypes": [
- "android",
- "ios",
- "web",
- "unity",
- "amp",
- "cloud",
- "warehouse",
- "reactnative",
- "flutter",
- "cordova"
- ],
- "supportedMessageTypes": [
- "group",
- "identify",
- "track"
- ],
- "destConfig": {
- "defaultConfig": [
- "email",
- "apiToken",
- "domain",
- "createUsersAsVerified",
- "sendGroupCallsWithoutUserId",
- "removeUsersFromOrganization",
- "searchByExternalId"
- ]
- },
- "secretKeys": [
- "apiToken"
- ]
- }
-}
\ No newline at end of file
diff --git a/data/destinations/zendesk/metadata.json b/data/destinations/zendesk/metadata.json
deleted file mode 100644
index 0384fb118..000000000
--- a/data/destinations/zendesk/metadata.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "connectionMode": {
- "cloud-mode": true,
- "device-mode": [
- "web",
- "android"
- ]
- },
- "supportedMethods": {
- "cloud-mode": [
- "track",
- "identify"
- ],
- "device-mode": {
- "web": [
- "track",
- "identify"
- ]
- }
- },
- "releaseStatus": "beta",
- "sourceCode": {
- "android": {
- "github": "",
- "version": "v1.0.0"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/zendesk/schema.json b/data/destinations/zendesk/schema.json
deleted file mode 100644
index 07bd92bb4..000000000
--- a/data/destinations/zendesk/schema.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "configSchema": {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "additionalProperties": false,
- "required": [
- "email",
- "apiToken",
- "domain"
- ],
- "properties": {
- "email": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "apiToken": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "domain": {
- "type": "string",
- "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
- },
- "createUsersAsVerified": {
- "type": "boolean"
- },
- "sendGroupCallsWithoutUserId": {
- "type": "boolean"
- },
- "removeUsersFromOrganization": {
- "type": "boolean"
- },
- "searchByExternalId": {
- "type": "boolean"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/data/destinations/zendesk/ui_config.json b/data/destinations/zendesk/ui_config.json
deleted file mode 100644
index c54fa67f9..000000000
--- a/data/destinations/zendesk/ui_config.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Email",
- "value": "email",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Email Address",
- "required": true,
- "placeholder": "e.g: abc@xyz.com"
- },
- {
- "type": "textInput",
- "label": "API Token",
- "value": "apiToken",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid API Token",
- "required": true,
- "placeholder": "API Token for Zendesk login",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Zendesk Subdomain",
- "value": "domain",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Zendesk Subdomain",
- "required": true,
- "placeholder": "Subdomain only not including .zendesk.com"
- },
- {
- "type": "checkbox",
- "label": "Create users as verified",
- "value": "createUsersAsVerified",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Send Group Calls without User ID",
- "value": "sendGroupCallsWithoutUserId",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Enable Removing Users from Organizations",
- "value": "removeUsersFromOrganization",
- "default": false
- },
- {
- "type": "checkbox",
- "label": "Update user's primary email",
- "value": "searchByExternalId",
- "default": false,
- "footerNote": "If enabled, RudderStack sets the email in the event as the user's primary email in Zendesk, replacing the previous primary email. Otherwise, it is set as the secondary email, if any primary email exists."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/GainsightPX/metadata.json b/data/sources/GainsightPX/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/GainsightPX/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/GainsightPX/schema.json b/data/sources/GainsightPX/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/GainsightPX/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/GainsightPX/ui_config.json b/data/sources/GainsightPX/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/GainsightPX/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/active_campaign/db_config.json b/data/sources/active_campaign/db_config.json
deleted file mode 100644
index 3c644f271..000000000
--- a/data/sources/active_campaign/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "active_campaign",
- "category": "cloud",
- "displayName": "Active campaign"
-}
\ No newline at end of file
diff --git a/data/sources/active_campaign/metadata.json b/data/sources/active_campaign/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/active_campaign/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/active_campaign/schema.json b/data/sources/active_campaign/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/active_campaign/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/active_campaign/ui_config.json b/data/sources/active_campaign/ui_config.json
deleted file mode 100644
index c345a3bc2..000000000
--- a/data/sources/active_campaign/ui_config.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "apiKey"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "URL",
- "value": "url",
- "placeholder": "e.g https://rudderstack.api-us1.com",
- "required": true
- },
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/amp/db_config.json b/data/sources/amp/db_config.json
deleted file mode 100644
index d20b80d28..000000000
--- a/data/sources/amp/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "AMP",
- "displayName": "AMP"
-}
\ No newline at end of file
diff --git a/data/sources/amp/metadata.json b/data/sources/amp/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/amp/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/amp/schema.json b/data/sources/amp/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/amp/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/amp/ui_config.json b/data/sources/amp/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/amp/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/android/db_config.json b/data/sources/android/db_config.json
deleted file mode 100644
index 37131906d..000000000
--- a/data/sources/android/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Android",
- "displayName": "Android"
-}
\ No newline at end of file
diff --git a/data/sources/android/metadata.json b/data/sources/android/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/android/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/android/schema.json b/data/sources/android/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/android/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/android/ui_config.json b/data/sources/android/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/android/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/appcenter/db_config.json b/data/sources/appcenter/db_config.json
deleted file mode 100644
index 6416270e5..000000000
--- a/data/sources/appcenter/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Appcenter",
- "category": "webhook",
- "displayName": "App Center"
-}
\ No newline at end of file
diff --git a/data/sources/appcenter/metadata.json b/data/sources/appcenter/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/appcenter/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/appcenter/schema.json b/data/sources/appcenter/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/appcenter/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/appcenter/ui_config.json b/data/sources/appcenter/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/appcenter/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/appsflyer/db_config.json b/data/sources/appsflyer/db_config.json
deleted file mode 100644
index d18f5fafe..000000000
--- a/data/sources/appsflyer/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "appsflyer",
- "category": "webhook",
- "displayName": "AppsFlyer"
-}
\ No newline at end of file
diff --git a/data/sources/appsflyer/metadata.json b/data/sources/appsflyer/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/appsflyer/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/appsflyer/schema.json b/data/sources/appsflyer/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/appsflyer/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/appsflyer/ui_config.json b/data/sources/appsflyer/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/appsflyer/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/auth0/db_config.json b/data/sources/auth0/db_config.json
deleted file mode 100644
index 46e0682a3..000000000
--- a/data/sources/auth0/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Auth0",
- "category": "webhook",
- "displayName": "Auth0"
-}
\ No newline at end of file
diff --git a/data/sources/auth0/metadata.json b/data/sources/auth0/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/auth0/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/auth0/schema.json b/data/sources/auth0/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/auth0/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/auth0/ui_config.json b/data/sources/auth0/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/auth0/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/bigquery/db_config.json b/data/sources/bigquery/db_config.json
deleted file mode 100644
index 52bbfcc9f..000000000
--- a/data/sources/bigquery/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "bigquery",
- "category": "warehouse",
- "displayName": "BigQuery",
- "options": {
- "syncBehaviours": [
- "upsert",
- "mirror"
- ],
- "isSqlModelSupported": true,
- "isAudienceSupported": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/bigquery/metadata.json b/data/sources/bigquery/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/bigquery/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/bigquery/schema.json b/data/sources/bigquery/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/bigquery/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/bigquery/ui_config.json b/data/sources/bigquery/ui_config.json
deleted file mode 100644
index 8779de06a..000000000
--- a/data/sources/bigquery/ui_config.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "credentials"
- ],
- "docLinks": {
- "grantPermissions": "https://docs.rudderstack.com/reverse-etl/google-bigquery/#granting-permissions",
- "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/google-bigquery/#what-do-the-three-validations-under-verifying-credentials-imply",
- "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/google-bigquery/#specifying-the-data-to-import",
- "setupInstructions": "https://docs.rudderstack.com/reverse-etl/google-bigquery"
- },
- "schemaAlias": "Dataset",
- "nameField": "project",
- "fields": [
- {
- "type": "textareaInput",
- "subType": "JSON",
- "label": "Credentials",
- "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your BigQuery database",
- "value": "credentials",
- "regex": ".*",
- "required": true,
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Project ID",
- "labelNote": "GCP Project ID where your BigQuery database is located.",
- "value": "project",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "infoTooltip": "Inferred from project_id field in the credentials settings.",
- "addInAccountSummary": true,
- "readOnly": true,
- "obtainValueFromField": {
- "name": "credentials",
- "key": "project_id"
- }
- },
- {
- "type": "textInput",
- "label": "Service account",
- "value": "serviceAccount",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Email Address",
- "required": true,
- "infoTooltip": "Inferred from client_email field in the credentials settings.",
- "addInAccountSummary": true,
- "readOnly": true,
- "obtainValueFromField": {
- "name": "credentials",
- "key": "client_email"
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/bing_ads/db_config.json b/data/sources/bing_ads/db_config.json
deleted file mode 100644
index 175f33fe6..000000000
--- a/data/sources/bing_ads/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "bing_ads",
- "category": "cloud",
- "displayName": "Bing ads"
-}
\ No newline at end of file
diff --git a/data/sources/bing_ads/metadata.json b/data/sources/bing_ads/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/bing_ads/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/bing_ads/schema.json b/data/sources/bing_ads/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/bing_ads/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/bing_ads/ui_config.json b/data/sources/bing_ads/ui_config.json
deleted file mode 100644
index bc89fa69c..000000000
--- a/data/sources/bing_ads/ui_config.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/bing_ads/info/accounts",
- "label": "Customer Account",
- "value": "customerAccountId",
- "responseKey": "accounts",
- "valueKey": "accountId",
- "labelKey": "accountName",
- "required": true
- },
- {
- "type": "dynamicSelect",
- "method": "get",
- "url": "/cloudSources/info/roles/bing_ads/info/reports",
- "label": "Report Name",
- "value": "report.name",
- "responseKey": "reports",
- "required": true
- },
- {
- "type": "dynamicSelect",
- "method": "get",
- "url": "/cloudSources/info/roles/bing_ads/info/columns/${preRequisiteValue}",
- "label": "Report Columns",
- "value": "report.columns",
- "multiple": true,
- "responseKey": "columns",
- "valueKey": "name",
- "labelKey": "name",
- "required": true,
- "mode": "multiple",
- "preRequisiteField": {
- "name": "report.name",
- "includeValue": true
- }
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/braze/db_config.json b/data/sources/braze/db_config.json
deleted file mode 100644
index cfe3c6d5a..000000000
--- a/data/sources/braze/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Braze",
- "category": "webhook",
- "displayName": "Braze"
-}
\ No newline at end of file
diff --git a/data/sources/braze/metadata.json b/data/sources/braze/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/braze/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/braze/schema.json b/data/sources/braze/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/braze/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/braze/ui_config.json b/data/sources/braze/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/braze/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/canny/db_config.json b/data/sources/canny/db_config.json
deleted file mode 100644
index 0682bee75..000000000
--- a/data/sources/canny/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "canny",
- "category": "webhook",
- "displayName": "Canny"
-}
\ No newline at end of file
diff --git a/data/sources/canny/metadata.json b/data/sources/canny/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/canny/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/canny/schema.json b/data/sources/canny/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/canny/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/canny/ui_config.json b/data/sources/canny/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/canny/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/clickhouse/db_config.json b/data/sources/clickhouse/db_config.json
deleted file mode 100644
index 0e4dd6554..000000000
--- a/data/sources/clickhouse/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "clickhouse",
- "category": "warehouse",
- "displayName": "ClickHouse",
- "options": {
- "isCredentialsValidationSupported": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/clickhouse/metadata.json b/data/sources/clickhouse/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/clickhouse/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/clickhouse/schema.json b/data/sources/clickhouse/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/clickhouse/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/clickhouse/ui_config.json b/data/sources/clickhouse/ui_config.json
deleted file mode 100644
index 11bd8a569..000000000
--- a/data/sources/clickhouse/ui_config.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "password"
- ],
- "docLinks": {
- "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/clickhouse/#specifying-the-data-to-import",
- "setupInstructions": "https://docs.rudderstack.com/reverse-etl/clickhouse"
- },
- "nameField": "user",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "inputFieldType": "number",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "dbname",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "inputFieldType": "password",
- "regex": ".*",
- "required": false,
- "secret": true
- },
- {
- "type": "checkbox",
- "label": "Secure",
- "value": "secure",
- "default": false
- },
- {
- "type": "checkbox",
- "preRequisiteField": {
- "name": "secure",
- "selectedValue": true
- },
- "label": "Skip verify",
- "value": "skipVerify",
- "default": false,
- "footerNote": "If you are using self signed certificates set this field to true"
- },
- {
- "type": "textareaInput",
- "preRequisiteField": {
- "name": "secure",
- "selectedValue": true
- },
- "label": "CA certificate",
- "value": "caCertificate",
- "regex": ".*",
- "required": false,
- "placeholder": "CA Certificate",
- "trim": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/cordova/db_config.json b/data/sources/cordova/db_config.json
deleted file mode 100644
index 212ebbe8e..000000000
--- a/data/sources/cordova/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Cordova",
- "displayName": "Cordova"
-}
\ No newline at end of file
diff --git a/data/sources/cordova/metadata.json b/data/sources/cordova/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/cordova/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/cordova/schema.json b/data/sources/cordova/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/cordova/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/cordova/ui_config.json b/data/sources/cordova/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/cordova/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/customerio/db_config.json b/data/sources/customerio/db_config.json
deleted file mode 100644
index daef2ecc6..000000000
--- a/data/sources/customerio/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Customerio",
- "category": "webhook",
- "displayName": "Customerio"
-}
\ No newline at end of file
diff --git a/data/sources/customerio/metadata.json b/data/sources/customerio/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/customerio/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/customerio/schema.json b/data/sources/customerio/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/customerio/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/customerio/ui_config.json b/data/sources/customerio/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/customerio/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/databricks/db_config.json b/data/sources/databricks/db_config.json
deleted file mode 100644
index ba66a5222..000000000
--- a/data/sources/databricks/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "databricks",
- "category": "warehouse",
- "displayName": "Databricks",
- "options": {
- "syncBehaviours": [
- "upsert"
- ],
- "isSqlModelSupported": false,
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/databricks/metadata.json b/data/sources/databricks/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/databricks/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/databricks/schema.json b/data/sources/databricks/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/databricks/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/databricks/ui_config.json b/data/sources/databricks/ui_config.json
deleted file mode 100644
index 5802d8a2c..000000000
--- a/data/sources/databricks/ui_config.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "token"
- ],
- "docLinks": {
- "grantPermissions": "https://www.rudderstack.com/docs/reverse-etl/databricks/#granting-permissions",
- "verifyingCredentials": "https://www.rudderstack.com/docs/reverse-etl/databricks/#what-do-the-three-validations-under-verifying-credentials-imply",
- "jsonMapperUseInstructions": "https://www.rudderstack.com/docs/reverse-etl/databricks/#specifying-the-data-to-import",
- "setupInstructions": "https://www.rudderstack.com/docs/reverse-etl/databricks"
- },
- "nameField": "host",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": false,
- "inputFieldType": "number"
- },
- {
- "type": "textInput",
- "label": "Path",
- "value": "path",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Token",
- "value": "token",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": false,
- "secret": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/dotnet/db_config.json b/data/sources/dotnet/db_config.json
deleted file mode 100644
index c82bae881..000000000
--- a/data/sources/dotnet/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "DotNet",
- "displayName": ".Net"
-}
\ No newline at end of file
diff --git a/data/sources/dotnet/metadata.json b/data/sources/dotnet/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/dotnet/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/dotnet/schema.json b/data/sources/dotnet/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/dotnet/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/dotnet/ui_config.json b/data/sources/dotnet/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/dotnet/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/extole/db_config.json b/data/sources/extole/db_config.json
deleted file mode 100644
index 4156b9e6a..000000000
--- a/data/sources/extole/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Extole",
- "category": "webhook",
- "displayName": "Extole"
-}
\ No newline at end of file
diff --git a/data/sources/extole/metadata.json b/data/sources/extole/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/extole/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/extole/schema.json b/data/sources/extole/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/extole/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/extole/ui_config.json b/data/sources/extole/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/extole/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/facebook_ads/metadata.json b/data/sources/facebook_ads/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/facebook_ads/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/facebook_ads/schema.json b/data/sources/facebook_ads/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/facebook_ads/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/facebook_ads/ui_config.json b/data/sources/facebook_ads/ui_config.json
deleted file mode 100644
index 4580b780a..000000000
--- a/data/sources/facebook_ads/ui_config.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/facebook_ads/info/accounts",
- "label": "Page",
- "labelKey": "name",
- "valueKey": "account_id",
- "value": "account_id",
- "responseKey": "data",
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Historical data",
- "value": "first_time_date_preset",
- "options": [
- {
- "name": "Last 2 years",
- "value": "last_2_years"
- },
- {
- "name": "Last 1 year",
- "value": "last_1_year"
- },
- {
- "name": "Last 6 months",
- "value": "last_6_months"
- },
- {
- "name": "Last 90 days",
- "value": "last_90_days"
- },
- {
- "name": "Last 30 days",
- "value": "last_30_days"
- },
- {
- "name": "Last 28 days",
- "value": "last_28_days"
- },
- {
- "name": "Last 14 days",
- "value": "last_14_days"
- },
- {
- "name": "Last 7 days",
- "value": "last_7_days"
- },
- {
- "name": "Last 3 days",
- "value": "last_3_days"
- }
- ],
- "defaultOption": {
- "name": "Last 14 days",
- "value": "last_14_days"
- },
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Attribution window",
- "value": "date_preset",
- "options": [
- {
- "name": "Last 90 days",
- "value": "last_90_days"
- },
- {
- "name": "Last 30 days",
- "value": "last_30_days"
- },
- {
- "name": "Last 28 days",
- "value": "last_28_days"
- },
- {
- "name": "Last 14 days",
- "value": "last_14_days"
- },
- {
- "name": "Last 7 days",
- "value": "last_7_days"
- },
- {
- "name": "Last 3 days",
- "value": "last_3_days"
- }
- ],
- "defaultOption": {
- "name": "Last 3 days",
- "value": "last_3_days"
- },
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/flutter/db_config.json b/data/sources/flutter/db_config.json
deleted file mode 100644
index 7b8f0f5f2..000000000
--- a/data/sources/flutter/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Flutter",
- "displayName": "Flutter"
-}
\ No newline at end of file
diff --git a/data/sources/flutter/metadata.json b/data/sources/flutter/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/flutter/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/flutter/schema.json b/data/sources/flutter/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/flutter/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/flutter/ui_config.json b/data/sources/flutter/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/flutter/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/freshdesk/db_config.json b/data/sources/freshdesk/db_config.json
deleted file mode 100644
index b7a0d9d7a..000000000
--- a/data/sources/freshdesk/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "freshdesk",
- "category": "cloud",
- "displayName": "Freshdesk",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/freshdesk/metadata.json b/data/sources/freshdesk/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/freshdesk/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/freshdesk/schema.json b/data/sources/freshdesk/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/freshdesk/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/freshdesk/ui_config.json b/data/sources/freshdesk/ui_config.json
deleted file mode 100644
index 92384a818..000000000
--- a/data/sources/freshdesk/ui_config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "apiKey"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "Subdomain",
- "value": "subdomain",
- "required": true
- },
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "required": true
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/go/db_config.json b/data/sources/go/db_config.json
deleted file mode 100644
index 63c84b10e..000000000
--- a/data/sources/go/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Go",
- "displayName": "Go"
-}
\ No newline at end of file
diff --git a/data/sources/go/metadata.json b/data/sources/go/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/go/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/go/schema.json b/data/sources/go/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/go/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/go/ui_config.json b/data/sources/go/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/go/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/google_adwords/db_config.json b/data/sources/google_adwords/db_config.json
deleted file mode 100644
index fdbca52a7..000000000
--- a/data/sources/google_adwords/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "google_adwords",
- "category": "cloud",
- "displayName": "Google AdWords",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_adwords/metadata.json b/data/sources/google_adwords/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/google_adwords/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_adwords/schema.json b/data/sources/google_adwords/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/google_adwords/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/google_adwords/ui_config.json b/data/sources/google_adwords/ui_config.json
deleted file mode 100644
index 499170afa..000000000
--- a/data/sources/google_adwords/ui_config.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/google_adwords/info/customerIds",
- "label": "Customer ID",
- "labelKey": "name",
- "valueKey": "id",
- "value": "customerId",
- "required": true
- },
- {
- "type": "datePicker",
- "label": "Start date",
- "value": "startDate",
- "format": "YYYY-MM-DD",
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Conversion window",
- "value": "conversionWindow",
- "options": [
- {
- "name": "Last 30 days",
- "value": 30
- },
- {
- "name": "Last 28 days",
- "value": 28
- },
- {
- "name": "Last 14 days",
- "value": 14
- },
- {
- "name": "Last 7 days",
- "value": 7
- },
- {
- "name": "Last 3 days",
- "value": 3
- }
- ],
- "defaultOption": {
- "name": "Last 30 days",
- "value": 30
- },
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_analytics/db_config.json b/data/sources/google_analytics/db_config.json
deleted file mode 100644
index 2fd190d43..000000000
--- a/data/sources/google_analytics/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "google_analytics",
- "category": "cloud",
- "displayName": "Google Analytics",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_analytics/metadata.json b/data/sources/google_analytics/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/google_analytics/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_analytics/schema.json b/data/sources/google_analytics/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/google_analytics/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/google_analytics/ui_config.json b/data/sources/google_analytics/ui_config.json
deleted file mode 100644
index 29b808c6a..000000000
--- a/data/sources/google_analytics/ui_config.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/google_analytics/info/views",
- "label": "View",
- "labelKey": "name",
- "valueKey": "id",
- "responseKey": "views",
- "value": "viewId",
- "required": true
- },
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/google_analytics/info/columns",
- "label": "Dimensions",
- "labelKey": "name",
- "valueKey": "id",
- "responseKey": "dimensions",
- "value": "dimensions",
- "required": true,
- "preRequisiteField": {
- "name": "viewId",
- "includeValue": true,
- "includeToRequest": {
- "transformKey": "id"
- }
- },
- "mode": "multiple"
- },
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/google_analytics/info/columns",
- "label": "Metrics",
- "labelKey": "name",
- "valueKey": "id",
- "responseKey": "metrics",
- "value": "metrics",
- "required": true,
- "preRequisiteField": {
- "name": "viewId",
- "includeValue": true,
- "includeToRequest": {
- "transformKey": "id"
- }
- },
- "mode": "multiple"
- },
- {
- "type": "datePicker",
- "label": "Start from date",
- "value": "dateSince",
- "format": "YYYY-MM-DD",
- "description": "Earliest report date",
- "preRequisiteField": {
- "name": "viewId"
- },
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_search_console/db_config.json b/data/sources/google_search_console/db_config.json
deleted file mode 100644
index 6cb517f00..000000000
--- a/data/sources/google_search_console/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "google_search_console",
- "category": "cloud",
- "displayName": "Google Search Console",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_search_console/metadata.json b/data/sources/google_search_console/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/google_search_console/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_search_console/schema.json b/data/sources/google_search_console/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/google_search_console/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/google_search_console/ui_config.json b/data/sources/google_search_console/ui_config.json
deleted file mode 100644
index ed69014f9..000000000
--- a/data/sources/google_search_console/ui_config.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "textInput",
- "label": "Site URL",
- "value": "siteUrl",
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Dimensions",
- "value": "date_preset",
- "mode": "multiple",
- "options": [
- {
- "name": "country",
- "value": "country"
- },
- {
- "name": "device",
- "value": "device"
- },
- {
- "name": "page",
- "value": "page"
- }
- ],
- "required": true
- },
- {
- "type": "datePicker",
- "label": "Start from date",
- "value": "dateSince",
- "format": "YYYY-MM-DD",
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_sheets/db_config.json b/data/sources/google_sheets/db_config.json
deleted file mode 100644
index 293f7cbe9..000000000
--- a/data/sources/google_sheets/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "google_sheets",
- "category": "cloud",
- "displayName": "Google Sheets"
-}
\ No newline at end of file
diff --git a/data/sources/google_sheets/metadata.json b/data/sources/google_sheets/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/google_sheets/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/google_sheets/schema.json b/data/sources/google_sheets/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/google_sheets/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/google_sheets/ui_config.json b/data/sources/google_sheets/ui_config.json
deleted file mode 100644
index 774f19fd4..000000000
--- a/data/sources/google_sheets/ui_config.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "dynamicSelect",
- "method": "post",
- "url": "/cloudSources/info/roles/google_sheets/info/sheets",
- "label": "SpreadSheet",
- "labelKey": "filename",
- "valueKey": "id",
- "responseKey": "sheets",
- "value": "spreadsheet",
- "showSearch": true,
- "required": true
- },
- {
- "type": "dynamicSelect",
- "label": "Worksheet",
- "value": "worksheet",
- "responseKey": "sheets",
- "showSearch": true,
- "valueKey": "properties.title",
- "labelKey": "properties.title",
- "method": "post",
- "url": "/cloudSources/info/roles/google_sheets/info/sheets/${preRequisiteValue}",
- "required": true,
- "preRequisiteField": {
- "name": "spreadsheet",
- "includeValue": true
- }
- },
- {
- "type": "textInput",
- "label": "Header row",
- "inputFieldType": "number",
- "value": "header_offset",
- "default": 1,
- "min": 1,
- "required": true,
- "disabledNormalMode": true,
- "preRequisiteField": {
- "name": "spreadsheet"
- }
- },
- {
- "type": "textInput",
- "inputFieldType": "number",
- "min": 1,
- "label": "First data row",
- "value": "top_row_offset",
- "disabledNormalMode": true,
- "preRequisiteField": {
- "name": "spreadsheet"
- }
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/http/db_config.json b/data/sources/http/db_config.json
deleted file mode 100644
index e753fe292..000000000
--- a/data/sources/http/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "HTTP",
- "displayName": "HTTP"
-}
\ No newline at end of file
diff --git a/data/sources/http/metadata.json b/data/sources/http/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/http/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/http/schema.json b/data/sources/http/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/http/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/http/ui_config.json b/data/sources/http/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/http/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/hubspot/db_config.json b/data/sources/hubspot/db_config.json
deleted file mode 100644
index 342efb00e..000000000
--- a/data/sources/hubspot/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "hubspot",
- "category": "cloud",
- "displayName": "Hubspot",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/hubspot/metadata.json b/data/sources/hubspot/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/hubspot/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/hubspot/schema.json b/data/sources/hubspot/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/hubspot/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/hubspot/ui_config.json b/data/sources/hubspot/ui_config.json
deleted file mode 100644
index 16d7a8d32..000000000
--- a/data/sources/hubspot/ui_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth",
- "config": [
- {
- "fields": [
- {
- "type": "singleSelect",
- "label": "Hubspot software",
- "value": "role",
- "required": true,
- "options": [
- {
- "name": "Marketing",
- "value": "hubspot"
- },
- {
- "name": "CRM",
- "value": "hubspot_crm"
- }
- ],
- "defaultOption": {
- "name": "Marketing",
- "value": "hubspot"
- }
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/hubspot_crm/db_config.json b/data/sources/hubspot_crm/db_config.json
deleted file mode 100644
index 553d7a436..000000000
--- a/data/sources/hubspot_crm/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "hubspot_crm",
- "category": "cloud",
- "displayName": "Hubspot CRM",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/hubspot_crm/metadata.json b/data/sources/hubspot_crm/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/hubspot_crm/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/hubspot_crm/schema.json b/data/sources/hubspot_crm/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/hubspot_crm/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/hubspot_crm/ui_config.json b/data/sources/hubspot_crm/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/hubspot_crm/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/intercom/db_config.json b/data/sources/intercom/db_config.json
deleted file mode 100644
index 3ac01a1b5..000000000
--- a/data/sources/intercom/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "intercom",
- "category": "cloud",
- "displayName": "Intercom",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/intercom/metadata.json b/data/sources/intercom/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/intercom/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/intercom/schema.json b/data/sources/intercom/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/intercom/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/intercom/ui_config.json b/data/sources/intercom/ui_config.json
deleted file mode 100644
index 2db727a01..000000000
--- a/data/sources/intercom/ui_config.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/ios/db_config.json b/data/sources/ios/db_config.json
deleted file mode 100644
index a716367e5..000000000
--- a/data/sources/ios/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "iOS",
- "displayName": "iOS"
-}
\ No newline at end of file
diff --git a/data/sources/ios/metadata.json b/data/sources/ios/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/ios/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/ios/schema.json b/data/sources/ios/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/ios/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/ios/ui_config.json b/data/sources/ios/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/ios/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/iterable/db_config.json b/data/sources/iterable/db_config.json
deleted file mode 100644
index 3c0856bf8..000000000
--- a/data/sources/iterable/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "iterable",
- "category": "webhook",
- "displayName": "Iterable"
-}
\ No newline at end of file
diff --git a/data/sources/iterable/metadata.json b/data/sources/iterable/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/iterable/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/iterable/schema.json b/data/sources/iterable/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/iterable/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/iterable/ui_config.json b/data/sources/iterable/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/iterable/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/java/db_config.json b/data/sources/java/db_config.json
deleted file mode 100644
index 9d19f30e3..000000000
--- a/data/sources/java/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Java",
- "displayName": "Java"
-}
\ No newline at end of file
diff --git a/data/sources/java/metadata.json b/data/sources/java/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/java/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/java/schema.json b/data/sources/java/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/java/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/java/ui_config.json b/data/sources/java/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/java/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/javascript/db_config.json b/data/sources/javascript/db_config.json
deleted file mode 100644
index 3f16871f0..000000000
--- a/data/sources/javascript/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Javascript",
- "displayName": "Javascript"
-}
\ No newline at end of file
diff --git a/data/sources/javascript/metadata.json b/data/sources/javascript/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/javascript/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/javascript/schema.json b/data/sources/javascript/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/javascript/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/javascript/ui_config.json b/data/sources/javascript/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/javascript/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/looker/db_config.json b/data/sources/looker/db_config.json
deleted file mode 100644
index ef2495e6c..000000000
--- a/data/sources/looker/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Looker",
- "displayName": "Looker"
-}
\ No newline at end of file
diff --git a/data/sources/looker/metadata.json b/data/sources/looker/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/looker/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/looker/schema.json b/data/sources/looker/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/looker/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/looker/ui_config.json b/data/sources/looker/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/looker/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/mailchimp/db_config.json b/data/sources/mailchimp/db_config.json
deleted file mode 100644
index 21098b3c2..000000000
--- a/data/sources/mailchimp/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "mailchimp",
- "category": "cloud",
- "displayName": "Mailchimp"
-}
\ No newline at end of file
diff --git a/data/sources/mailchimp/metadata.json b/data/sources/mailchimp/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/mailchimp/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/mailchimp/schema.json b/data/sources/mailchimp/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/mailchimp/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/mailchimp/ui_config.json b/data/sources/mailchimp/ui_config.json
deleted file mode 100644
index 3d69b07d9..000000000
--- a/data/sources/mailchimp/ui_config.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Earliest campaign year",
- "value": "firstTimeFetchCampaignsSinceYear",
- "footerNote": "Fetch monthly reports starting from this year.",
- "required": true,
- "options": [
- 2020,
- 2019,
- 2018,
- 2017,
- 2016,
- 2015
- ],
- "default": 2019
- },
- {
- "type": "singleSelect",
- "label": "Campaign fetch period",
- "value": "fetchCampaignsDaysAgo",
- "footerNote": "Starting month for each monthly report.",
- "required": true,
- "options": [
- {
- "name": "1 day",
- "value": 1
- },
- {
- "name": "1 week",
- "value": 7
- },
- {
- "name": "2 weeks",
- "value": 14
- },
- {
- "name": "1 month",
- "value": 30
- }
- ],
- "default": 1
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/mailmodo/db_config.json b/data/sources/mailmodo/db_config.json
deleted file mode 100644
index 3dea87ec0..000000000
--- a/data/sources/mailmodo/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "mailmodo",
- "category": "webhook",
- "displayName": "Mailmodo"
-}
\ No newline at end of file
diff --git a/data/sources/mailmodo/metadata.json b/data/sources/mailmodo/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/mailmodo/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/mailmodo/schema.json b/data/sources/mailmodo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/mailmodo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/mailmodo/ui_config.json b/data/sources/mailmodo/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/mailmodo/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/marketo/db_config.json b/data/sources/marketo/db_config.json
deleted file mode 100644
index fff620532..000000000
--- a/data/sources/marketo/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "marketo",
- "category": "cloud",
- "displayName": "Marketo"
-}
\ No newline at end of file
diff --git a/data/sources/marketo/metadata.json b/data/sources/marketo/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/marketo/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/marketo/schema.json b/data/sources/marketo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/marketo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/marketo/ui_config.json b/data/sources/marketo/ui_config.json
deleted file mode 100644
index 7b9cc48e1..000000000
--- a/data/sources/marketo/ui_config.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "clientSecret"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "Marketo Client ID",
- "value": "clientId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: client id"
- },
- {
- "type": "textInput",
- "label": "Marketo Client Secret",
- "value": "clientSecret",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: client secret",
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Marketo Munchkin Account ID",
- "value": "munchkinId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: munchkin account id",
- "secret": true
- }
- ]
- }
- ]
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "datePicker",
- "label": "Start date",
- "value": "startDate",
- "format": "YYYY-MM-DD",
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/mixpanel/db_config.json b/data/sources/mixpanel/db_config.json
deleted file mode 100644
index e2055568f..000000000
--- a/data/sources/mixpanel/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "mixpanel",
- "category": "cloud",
- "displayName": "Mixpanel",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/mixpanel/metadata.json b/data/sources/mixpanel/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/mixpanel/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/mixpanel/schema.json b/data/sources/mixpanel/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/mixpanel/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/mixpanel/ui_config.json b/data/sources/mixpanel/ui_config.json
deleted file mode 100644
index 989adb351..000000000
--- a/data/sources/mixpanel/ui_config.json
+++ /dev/null
@@ -1,466 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "apisecret"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apikey",
- "required": true
- },
- {
- "type": "textInput",
- "label": "API Secret",
- "value": "apisecret",
- "required": true
- },
- {
- "type": "singleSelect",
- "showSearch": true,
- "label": "Project timezone",
- "value": "timezone",
- "required": true,
- "options": [
- "US/Alaska",
- "US/Arizona",
- "US/Central",
- "US/Eastern",
- "US/Hawaii",
- "US/Mountain",
- "US/Pacific",
- "Africa/Abidjan",
- "Africa/Accra",
- "Africa/Addis_Ababa",
- "Africa/Algiers",
- "Africa/Asmara",
- "Africa/Bamako",
- "Africa/Bangui",
- "Africa/Banjul",
- "Africa/Bissau",
- "Africa/Blantyre",
- "Africa/Brazzaville",
- "Africa/Bujumbura",
- "Africa/Cairo",
- "Africa/Casablanca",
- "Africa/Ceuta",
- "Africa/Conakry",
- "Africa/Dakar",
- "Africa/Dar_es_Salaam",
- "Africa/Djibouti",
- "Africa/Douala",
- "Africa/El_Aaiun",
- "Africa/Freetown",
- "Africa/Gaborone",
- "Africa/Harare",
- "Africa/Johannesburg",
- "Africa/Kampala",
- "Africa/Khartoum",
- "Africa/Kigali",
- "Africa/Kinshasa",
- "Africa/Lagos",
- "Africa/Libreville",
- "Africa/Lome",
- "Africa/Luanda",
- "Africa/Lubumbashi",
- "Africa/Lusaka",
- "Africa/Malabo",
- "Africa/Maputo",
- "Africa/Maseru",
- "Africa/Mbabane",
- "Africa/Mogadishu",
- "Africa/Monrovia",
- "Africa/Nairobi",
- "Africa/Ndjamena",
- "Africa/Niamey",
- "Africa/Nouakchott",
- "Africa/Ouagadougou",
- "Africa/Porto-Novo",
- "Africa/Sao_Tome",
- "Africa/Tripoli",
- "Africa/Tunis",
- "Africa/Windhoek",
- "America/Adak",
- "America/Anchorage",
- "America/Anguilla",
- "America/Antigua",
- "America/Araguaina",
- "America/Argentina/Buenos_Aires",
- "America/Argentina/Catamarca",
- "America/Argentina/Cordoba",
- "America/Argentina/Jujuy",
- "America/Argentina/La_Rioja",
- "America/Argentina/Mendoza",
- "America/Argentina/Rio_Gallegos",
- "America/Argentina/Salta",
- "America/Argentina/San_Juan",
- "America/Argentina/San_Luis",
- "America/Argentina/Tucuman",
- "America/Argentina/Ushuaia",
- "America/Aruba",
- "America/Asuncion",
- "America/Atikokan",
- "America/Bahia",
- "America/Bahia_Banderas",
- "America/Barbados",
- "America/Belem",
- "America/Belize",
- "America/Blanc-Sablon",
- "America/Boa_Vista",
- "America/Bogota",
- "America/Boise",
- "America/Cambridge_Bay",
- "America/Campo_Grande",
- "America/Cancun",
- "America/Caracas",
- "America/Cayenne",
- "America/Cayman",
- "America/Chicago",
- "America/Chihuahua",
- "America/Costa_Rica",
- "America/Cuiaba",
- "America/Curacao",
- "America/Danmarkshavn",
- "America/Dawson",
- "America/Dawson_Creek",
- "America/Denver",
- "America/Detroit",
- "America/Dominica",
- "America/Edmonton",
- "America/Eirunepe",
- "America/El_Salvador",
- "America/Fortaleza",
- "America/Glace_Bay",
- "America/Godthab",
- "America/Goose_Bay",
- "America/Grand_Turk",
- "America/Grenada",
- "America/Guadeloupe",
- "America/Guatemala",
- "America/Guayaquil",
- "America/Guyana",
- "America/Halifax",
- "America/Havana",
- "America/Hermosillo",
- "America/Indiana/Indianapolis",
- "America/Indiana/Knox",
- "America/Indiana/Marengo",
- "America/Indiana/Petersburg",
- "America/Indiana/Tell_City",
- "America/Indiana/Vevay",
- "America/Indiana/Vincennes",
- "America/Indiana/Winamac",
- "America/Inuvik",
- "America/Iqaluit",
- "America/Jamaica",
- "America/Juneau",
- "America/Kentucky/Louisville",
- "America/Kentucky/Monticello",
- "America/La_Paz",
- "America/Lima",
- "America/Los_Angeles",
- "America/Maceio",
- "America/Managua",
- "America/Manaus",
- "America/Martinique",
- "America/Matamoros",
- "America/Mazatlan",
- "America/Menominee",
- "America/Merida",
- "America/Mexico_City",
- "America/Miquelon",
- "America/Moncton",
- "America/Monterrey",
- "America/Montevideo",
- "America/Montreal",
- "America/Montserrat",
- "America/Nassau",
- "America/New_York",
- "America/Nipigon",
- "America/Nome",
- "America/Noronha",
- "America/North_Dakota/Center",
- "America/North_Dakota/New_Salem",
- "America/Ojinaga",
- "America/Panama",
- "America/Pangnirtung",
- "America/Paramaribo",
- "America/Phoenix",
- "America/Port-au-Prince",
- "America/Porto_Velho",
- "America/Port_of_Spain",
- "America/Puerto_Rico",
- "America/Rainy_River",
- "America/Rankin_Inlet",
- "America/Recife",
- "America/Regina",
- "America/Resolute",
- "America/Rio_Branco",
- "America/Santarem",
- "America/Santa_Isabel",
- "America/Santiago",
- "America/Santo_Domingo",
- "America/Sao_Paulo",
- "America/Scoresbysund",
- "America/St_Johns",
- "America/St_Kitts",
- "America/St_Lucia",
- "America/St_Thomas",
- "America/St_Vincent",
- "America/Swift_Current",
- "America/Tegucigalpa",
- "America/Thule",
- "America/Thunder_Bay",
- "America/Tijuana",
- "America/Toronto",
- "America/Tortola",
- "America/Vancouver",
- "America/Whitehorse",
- "America/Winnipeg",
- "America/Yakutat",
- "America/Yellowknife",
- "Antarctica/Casey",
- "Antarctica/Davis",
- "Antarctica/DumontDUrville",
- "Antarctica/Macquarie",
- "Antarctica/Mawson",
- "Antarctica/McMurdo",
- "Antarctica/Palmer",
- "Antarctica/Rothera",
- "Antarctica/Syowa",
- "Antarctica/Vostok",
- "Asia/Aden",
- "Asia/Almaty",
- "Asia/Amman",
- "Asia/Anadyr",
- "Asia/Aqtau",
- "Asia/Aqtobe",
- "Asia/Ashgabat",
- "Asia/Baghdad",
- "Asia/Bahrain",
- "Asia/Baku",
- "Asia/Bangkok",
- "Asia/Beirut",
- "Asia/Bishkek",
- "Asia/Brunei",
- "Asia/Choibalsan",
- "Asia/Chongqing",
- "Asia/Colombo",
- "Asia/Damascus",
- "Asia/Dhaka",
- "Asia/Dili",
- "Asia/Dubai",
- "Asia/Dushanbe",
- "Asia/Gaza",
- "Asia/Harbin",
- "Asia/Hong_Kong",
- "Asia/Hovd",
- "Asia/Ho_Chi_Minh",
- "Asia/Irkutsk",
- "Asia/Jakarta",
- "Asia/Jayapura",
- "Asia/Jerusalem",
- "Asia/Kabul",
- "Asia/Kamchatka",
- "Asia/Karachi",
- "Asia/Kashgar",
- "Asia/Kathmandu",
- "Asia/Kolkata",
- "Asia/Krasnoyarsk",
- "Asia/Kuala_Lumpur",
- "Asia/Kuching",
- "Asia/Kuwait",
- "Asia/Macau",
- "Asia/Magadan",
- "Asia/Makassar",
- "Asia/Manila",
- "Asia/Muscat",
- "Asia/Nicosia",
- "Asia/Novokuznetsk",
- "Asia/Novosibirsk",
- "Asia/Omsk",
- "Asia/Oral",
- "Asia/Phnom_Penh",
- "Asia/Pontianak",
- "Asia/Pyongyang",
- "Asia/Qatar",
- "Asia/Qyzylorda",
- "Asia/Rangoon",
- "Asia/Riyadh",
- "Asia/Sakhalin",
- "Asia/Samarkand",
- "Asia/Seoul",
- "Asia/Shanghai",
- "Asia/Singapore",
- "Asia/Taipei",
- "Asia/Tashkent",
- "Asia/Tbilisi",
- "Asia/Tehran",
- "Asia/Thimphu",
- "Asia/Tokyo",
- "Asia/Ulaanbaatar",
- "Asia/Urumqi",
- "Asia/Vientiane",
- "Asia/Vladivostok",
- "Asia/Yakutsk",
- "Asia/Yekaterinburg",
- "Asia/Yerevan",
- "Atlantic/Azores",
- "Atlantic/Bermuda",
- "Atlantic/Canary",
- "Atlantic/Cape_Verde",
- "Atlantic/Faroe",
- "Atlantic/Madeira",
- "Atlantic/Reykjavik",
- "Atlantic/South_Georgia",
- "Atlantic/Stanley",
- "Atlantic/St_Helena",
- "Australia/Adelaide",
- "Australia/Brisbane",
- "Australia/Broken_Hill",
- "Australia/Currie",
- "Australia/Darwin",
- "Australia/Eucla",
- "Australia/Hobart",
- "Australia/Lindeman",
- "Australia/Lord_Howe",
- "Australia/Melbourne",
- "Australia/Perth",
- "Australia/Sydney",
- "Canada/Atlantic",
- "Canada/Central",
- "Canada/Eastern",
- "Canada/Mountain",
- "Canada/Newfoundland",
- "Canada/Pacific",
- "Europe/Amsterdam",
- "Europe/Andorra",
- "Europe/Athens",
- "Europe/Belgrade",
- "Europe/Berlin",
- "Europe/Brussels",
- "Europe/Bucharest",
- "Europe/Budapest",
- "Europe/Chisinau",
- "Europe/Copenhagen",
- "Europe/Dublin",
- "Europe/Gibraltar",
- "Europe/Helsinki",
- "Europe/Istanbul",
- "Europe/Kaliningrad",
- "Europe/Kiev",
- "Europe/Lisbon",
- "Europe/London",
- "Europe/Luxembourg",
- "Europe/Madrid",
- "Europe/Malta",
- "Europe/Minsk",
- "Europe/Monaco",
- "Europe/Moscow",
- "Europe/Oslo",
- "Europe/Paris",
- "Europe/Prague",
- "Europe/Riga",
- "Europe/Rome",
- "Europe/Samara",
- "Europe/Simferopol",
- "Europe/Sofia",
- "Europe/Stockholm",
- "Europe/Tallinn",
- "Europe/Tirane",
- "Europe/Uzhgorod",
- "Europe/Vaduz",
- "Europe/Vienna",
- "Europe/Vilnius",
- "Europe/Volgograd",
- "Europe/Warsaw",
- "Europe/Zaporozhye",
- "Europe/Zurich",
- "GMT",
- "Indian/Antananarivo",
- "Indian/Chagos",
- "Indian/Christmas",
- "Indian/Cocos",
- "Indian/Comoro",
- "Indian/Kerguelen",
- "Indian/Mahe",
- "Indian/Maldives",
- "Indian/Mauritius",
- "Indian/Mayotte",
- "Indian/Reunion",
- "Pacific/Apia",
- "Pacific/Auckland",
- "Pacific/Chatham",
- "Pacific/Chuuk",
- "Pacific/Easter",
- "Pacific/Efate",
- "Pacific/Enderbury",
- "Pacific/Fakaofo",
- "Pacific/Fiji",
- "Pacific/Funafuti",
- "Pacific/Galapagos",
- "Pacific/Gambier",
- "Pacific/Guadalcanal",
- "Pacific/Guam",
- "Pacific/Honolulu",
- "Pacific/Johnston",
- "Pacific/Kiritimati",
- "Pacific/Kosrae",
- "Pacific/Kwajalein",
- "Pacific/Majuro",
- "Pacific/Marquesas",
- "Pacific/Midway",
- "Pacific/Nauru",
- "Pacific/Niue",
- "Pacific/Norfolk",
- "Pacific/Noumea",
- "Pacific/Pago_Pago",
- "Pacific/Palau",
- "Pacific/Pitcairn",
- "Pacific/Pohnpei",
- "Pacific/Port_Moresby",
- "Pacific/Rarotonga",
- "Pacific/Saipan",
- "Pacific/Tahiti",
- "Pacific/Tarawa",
- "Pacific/Tongatapu",
- "Pacific/Wake",
- "Pacific/Wallis",
- "UTC"
- ],
- "default": "UTC"
- }
- ]
- }
- ]
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "datePicker",
- "label": "Import Mixpanel events since",
- "value": "startFromDate",
- "format": "YYYY-MM-DD",
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/monday/db_config.json b/data/sources/monday/db_config.json
deleted file mode 100644
index 1ca3a0fb1..000000000
--- a/data/sources/monday/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "monday",
- "category": "webhook",
- "displayName": "Monday Source"
-}
\ No newline at end of file
diff --git a/data/sources/monday/metadata.json b/data/sources/monday/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/monday/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/monday/schema.json b/data/sources/monday/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/monday/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/monday/ui_config.json b/data/sources/monday/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/monday/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/mysql/db_config.json b/data/sources/mysql/db_config.json
deleted file mode 100644
index 62f6b42fb..000000000
--- a/data/sources/mysql/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "mysql",
- "category": "warehouse",
- "displayName": "MySql",
- "options": {
- "syncBehaviours": [
- "upsert",
- "mirror"
- ],
- "isSqlModelSupported": false
- }
-}
\ No newline at end of file
diff --git a/data/sources/mysql/metadata.json b/data/sources/mysql/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/mysql/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/mysql/schema.json b/data/sources/mysql/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/mysql/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/mysql/ui_config.json b/data/sources/mysql/ui_config.json
deleted file mode 100644
index d82db4e1e..000000000
--- a/data/sources/mysql/ui_config.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "password"
- ],
- "docLinks": {},
- "nameField": "user",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": false,
- "inputFieldType": "number"
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "dbname",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "inputFieldType": "password",
- "regex": ".*",
- "required": true,
- "secret": true
- },
- {
- "type": "singleSelect",
- "label": "SSL Mode",
- "value": "sslmode",
- "options": [
- {
- "name": "false",
- "value": "false"
- },
- {
- "name": "skip-verify",
- "value": "skip-verify"
- }
- ],
- "defaultOption": {
- "name": "false",
- "value": "false"
- },
- "required": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/netsuite/db_config.json b/data/sources/netsuite/db_config.json
deleted file mode 100644
index 3b1acdadd..000000000
--- a/data/sources/netsuite/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "netsuite",
- "category": "cloud",
- "displayName": "NetSuite"
-}
\ No newline at end of file
diff --git a/data/sources/netsuite/metadata.json b/data/sources/netsuite/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/netsuite/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/netsuite/schema.json b/data/sources/netsuite/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/netsuite/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/netsuite/ui_config.json b/data/sources/netsuite/ui_config.json
deleted file mode 100644
index 8f09f3d62..000000000
--- a/data/sources/netsuite/ui_config.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "consumerKey",
- "consumerSecret",
- "tokenId",
- "tokenSecret"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "Account Id",
- "value": "accountId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Consumer Key",
- "value": "consumerKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Consumer Secret",
- "value": "consumerSecret",
- "inputType": "password",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Token ID",
- "value": "tokenId",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Token Secret",
- "inputType": "password",
- "value": "tokenSecret",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- }
- ]
- }
- ]
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "datePicker",
- "label": "Historical sync start date",
- "value": "startDateIso",
- "format": "YYYY-MM-DD",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Rudder Restlet URL",
- "value": "restletUrl",
- "footerNote": "In order to sync saved searches, you need to install https://js.blendo.co/netsuite/v1/restlet.js script in your Netsuite account, and paste the generated Restlet URL here."
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/node/db_config.json b/data/sources/node/db_config.json
deleted file mode 100644
index 0832adade..000000000
--- a/data/sources/node/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Node",
- "displayName": "Node"
-}
\ No newline at end of file
diff --git a/data/sources/node/metadata.json b/data/sources/node/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/node/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/node/schema.json b/data/sources/node/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/node/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/node/ui_config.json b/data/sources/node/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/node/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/pardot/db_config.json b/data/sources/pardot/db_config.json
deleted file mode 100644
index e0611f38e..000000000
--- a/data/sources/pardot/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "pardot",
- "category": "cloud",
- "displayName": "Pardot"
-}
\ No newline at end of file
diff --git a/data/sources/pardot/metadata.json b/data/sources/pardot/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/pardot/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/pardot/schema.json b/data/sources/pardot/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/pardot/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/pardot/ui_config.json b/data/sources/pardot/ui_config.json
deleted file mode 100644
index 1b67d277e..000000000
--- a/data/sources/pardot/ui_config.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "password"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "Email",
- "value": "email",
- "required": true
- },
- {
- "type": "textInput",
- "label": "User Key",
- "value": "userKey",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "required": true
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/php/db_config.json b/data/sources/php/db_config.json
deleted file mode 100644
index 2a3542d5c..000000000
--- a/data/sources/php/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "PHP",
- "displayName": "PHP"
-}
\ No newline at end of file
diff --git a/data/sources/php/metadata.json b/data/sources/php/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/php/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/php/schema.json b/data/sources/php/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/php/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/php/ui_config.json b/data/sources/php/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/php/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/pipedrive/db_config.json b/data/sources/pipedrive/db_config.json
deleted file mode 100644
index 112b513ba..000000000
--- a/data/sources/pipedrive/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "pipedrive",
- "category": "cloud",
- "displayName": "Pipedrive"
-}
\ No newline at end of file
diff --git a/data/sources/pipedrive/metadata.json b/data/sources/pipedrive/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/pipedrive/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/pipedrive/schema.json b/data/sources/pipedrive/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/pipedrive/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/pipedrive/ui_config.json b/data/sources/pipedrive/ui_config.json
deleted file mode 100644
index 1a2c76005..000000000
--- a/data/sources/pipedrive/ui_config.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "apiKey"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "Api Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/postgres/db_config.json b/data/sources/postgres/db_config.json
deleted file mode 100644
index cb0aa5850..000000000
--- a/data/sources/postgres/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "postgres",
- "category": "warehouse",
- "displayName": "Postgres",
- "options": {
- "syncBehaviours": [
- "upsert",
- "mirror"
- ],
- "isSqlModelSupported": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/postgres/metadata.json b/data/sources/postgres/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/postgres/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/postgres/schema.json b/data/sources/postgres/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/postgres/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/postgres/ui_config.json b/data/sources/postgres/ui_config.json
deleted file mode 100644
index 0e5df1f98..000000000
--- a/data/sources/postgres/ui_config.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "password"
- ],
- "docLinks": {
- "grantPermissions": "https://docs.rudderstack.com/reverse-etl/postgresql/#granting-permissions",
- "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/postgresql/#what-do-the-three-validations-under-verifying-credentials-imply",
- "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/postgresql/#specifying-the-data-to-import",
- "setupInstructions": "https://docs.rudderstack.com/reverse-etl/postgresql"
- },
- "nameField": "user",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "dbname",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "inputFieldType": "password",
- "regex": ".*",
- "required": true,
- "secret": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "inputFieldType": "number",
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "SSL Mode",
- "value": "sslMode",
- "options": [
- {
- "name": "disable",
- "value": "disable"
- },
- {
- "name": "require",
- "value": "require"
- }
- ],
- "defaultOption": {
- "name": "disable",
- "value": "disable"
- },
- "required": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/posthog/db_config.json b/data/sources/posthog/db_config.json
deleted file mode 100644
index a6d39bf61..000000000
--- a/data/sources/posthog/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "POSTHOG",
- "displayName": "PostHog"
-}
\ No newline at end of file
diff --git a/data/sources/posthog/metadata.json b/data/sources/posthog/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/posthog/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/posthog/schema.json b/data/sources/posthog/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/posthog/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/posthog/ui_config.json b/data/sources/posthog/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/posthog/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/python/db_config.json b/data/sources/python/db_config.json
deleted file mode 100644
index 70c59db4a..000000000
--- a/data/sources/python/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Python",
- "displayName": "Python"
-}
\ No newline at end of file
diff --git a/data/sources/python/metadata.json b/data/sources/python/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/python/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/python/schema.json b/data/sources/python/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/python/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/python/ui_config.json b/data/sources/python/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/python/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/quickbooks/db_config.json b/data/sources/quickbooks/db_config.json
deleted file mode 100644
index e905fc550..000000000
--- a/data/sources/quickbooks/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "quickbooks",
- "category": "cloud",
- "displayName": "Quickbooks"
-}
\ No newline at end of file
diff --git a/data/sources/quickbooks/metadata.json b/data/sources/quickbooks/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/quickbooks/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/quickbooks/schema.json b/data/sources/quickbooks/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/quickbooks/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/quickbooks/ui_config.json b/data/sources/quickbooks/ui_config.json
deleted file mode 100644
index 2db727a01..000000000
--- a/data/sources/quickbooks/ui_config.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/react_native/db_config.json b/data/sources/react_native/db_config.json
deleted file mode 100644
index 878502d70..000000000
--- a/data/sources/react_native/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "ReactNative",
- "displayName": "React Native"
-}
\ No newline at end of file
diff --git a/data/sources/react_native/metadata.json b/data/sources/react_native/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/react_native/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/react_native/schema.json b/data/sources/react_native/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/react_native/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/react_native/ui_config.json b/data/sources/react_native/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/react_native/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/reactnative/db_config.json b/data/sources/reactnative/db_config.json
deleted file mode 100644
index a5c0e6aa1..000000000
--- a/data/sources/reactnative/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "displayName": "React Native",
- "name": "ReactNative"
-}
\ No newline at end of file
diff --git a/data/sources/reactnative/metadata.json b/data/sources/reactnative/metadata.json
deleted file mode 100644
index 3e8ccb1b2..000000000
--- a/data/sources/reactnative/metadata.json
+++ /dev/null
@@ -1 +0,0 @@
-{"docCategory": "", "docLink": ""}
\ No newline at end of file
diff --git a/data/sources/redshift/db_config.json b/data/sources/redshift/db_config.json
deleted file mode 100644
index 1c4507a66..000000000
--- a/data/sources/redshift/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "redshift",
- "category": "warehouse",
- "displayName": "Redshift",
- "options": {
- "syncBehaviours": [
- "upsert",
- "mirror"
- ],
- "isSqlModelSupported": true,
- "isAudienceSupported": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/redshift/metadata.json b/data/sources/redshift/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/redshift/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/redshift/schema.json b/data/sources/redshift/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/redshift/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/redshift/ui_config.json b/data/sources/redshift/ui_config.json
deleted file mode 100644
index d72906888..000000000
--- a/data/sources/redshift/ui_config.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "password"
- ],
- "docLinks": {
- "grantPermissions": "https://docs.rudderstack.com/reverse-etl/amazon-redshift/#granting-permissions",
- "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/amazon-redshift/#what-do-the-three-validations-under-verifying-credentials-imply",
- "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-redshift/#specifying-the-data-to-import",
- "setupInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-redshift"
- },
- "nameField": "user",
- "fields": [
- {
- "type": "textInput",
- "label": "Host",
- "value": "host",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Port",
- "inputFieldType": "number",
- "value": "port",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "dbname",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "inputFieldType": "password",
- "regex": ".*",
- "required": true,
- "secret": true
- },
- {
- "type": "singleSelect",
- "label": "SSL Mode",
- "value": "sslMode",
- "options": [
- {
- "name": "disable",
- "value": "disable"
- },
- {
- "name": "require",
- "value": "require"
- }
- ],
- "defaultOption": {
- "name": "disable",
- "value": "disable"
- },
- "required": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/ruby/db_config.json b/data/sources/ruby/db_config.json
deleted file mode 100644
index e6a00df96..000000000
--- a/data/sources/ruby/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Ruby",
- "displayName": "Ruby"
-}
\ No newline at end of file
diff --git a/data/sources/ruby/metadata.json b/data/sources/ruby/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/ruby/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/ruby/schema.json b/data/sources/ruby/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/ruby/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/ruby/ui_config.json b/data/sources/ruby/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/ruby/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/rust/db_config.json b/data/sources/rust/db_config.json
deleted file mode 100644
index f343f02ac..000000000
--- a/data/sources/rust/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Rust",
- "displayName": "Rust"
-}
\ No newline at end of file
diff --git a/data/sources/rust/metadata.json b/data/sources/rust/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/rust/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/rust/schema.json b/data/sources/rust/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/rust/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/rust/ui_config.json b/data/sources/rust/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/rust/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/s3/db_config.json b/data/sources/s3/db_config.json
deleted file mode 100644
index bb746a526..000000000
--- a/data/sources/s3/db_config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "s3",
- "category": "warehouse",
- "displayName": "Amazon S3",
- "options": {
- "skipWarehouseSchemaConfig": true,
- "isCredentialsValidationSupported": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/s3/metadata.json b/data/sources/s3/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/s3/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/s3/schema.json b/data/sources/s3/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/s3/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/s3/ui_config.json b/data/sources/s3/ui_config.json
deleted file mode 100644
index 37ec05525..000000000
--- a/data/sources/s3/ui_config.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "docLinks": {
- "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-s3/#specifying-the-data-to-import",
- "setupInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-s3"
- },
- "nameField": "rudder_account_name",
- "secretFields": [
- "accessKey"
- ],
- "fields": [
- {
- "type": "singleSelect",
- "label": "Connection Mode",
- "value": "connectionMode",
- "options": [
- {
- "name": "Cross-Account Role (recommended)",
- "value": "crossAccountRole"
- },
- {
- "name": "Access Key",
- "value": "accessKey"
- }
- ],
- "defaultOption": {
- "value": "crossAccountRole"
- }
- },
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "AWS Access Key ID",
- "value": "accessKeyID",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "placeholder": "e.g: access-key-id",
- "secret": true,
- "trim": true,
- "preRequisiteField": {
- "name": "connectionMode",
- "selectedValue": "accessKey"
- }
- },
- {
- "type": "textInput",
- "label": "AWS Secret Access Key",
- "value": "accessKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "inputFieldType": "password",
- "required": true,
- "placeholder": "e.g: secret-access-key",
- "secret": true,
- "preRequisiteField": {
- "name": "connectionMode",
- "selectedValue": "accessKey"
- }
- },
- {
- "type": "textInput",
- "label": "Role ARN",
- "value": "roleARN",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Role ARN",
- "required": true,
- "placeholder": "arn:aws:iam::xxxx:role/xxxx",
- "preRequisiteField": {
- "name": "connectionMode",
- "selectedValue": "crossAccountRole"
- },
- "footerNote": "Please follow our docs to create the role ARN. For creating the role add the Account ID: `422074288268` and use Workspace Id as the External Id."
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/salesforce/db_config.json b/data/sources/salesforce/db_config.json
deleted file mode 100644
index 451ffa73d..000000000
--- a/data/sources/salesforce/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "salesforce",
- "category": "cloud",
- "displayName": "Salesforce",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/salesforce/metadata.json b/data/sources/salesforce/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/salesforce/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/salesforce/schema.json b/data/sources/salesforce/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/salesforce/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/salesforce/ui_config.json b/data/sources/salesforce/ui_config.json
deleted file mode 100644
index 2db727a01..000000000
--- a/data/sources/salesforce/ui_config.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/segment/db_config.json b/data/sources/segment/db_config.json
deleted file mode 100644
index cfebf9e26..000000000
--- a/data/sources/segment/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Segment",
- "category": "webhook",
- "displayName": "Segment"
-}
\ No newline at end of file
diff --git a/data/sources/segment/metadata.json b/data/sources/segment/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/segment/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/segment/schema.json b/data/sources/segment/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/segment/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/segment/ui_config.json b/data/sources/segment/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/segment/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/sendgrid/db_config.json b/data/sources/sendgrid/db_config.json
deleted file mode 100644
index d235fd7ca..000000000
--- a/data/sources/sendgrid/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "sendgrid",
- "category": "cloud",
- "displayName": "SendGrid",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/sendgrid/metadata.json b/data/sources/sendgrid/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/sendgrid/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/sendgrid/schema.json b/data/sources/sendgrid/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/sendgrid/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/sendgrid/ui_config.json b/data/sources/sendgrid/ui_config.json
deleted file mode 100644
index a49eb3d50..000000000
--- a/data/sources/sendgrid/ui_config.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "apiKey"
- ],
- "nameField": "rudder_account_name",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Account Name",
- "value": "rudder_account_name",
- "regex": ".*",
- "required": true,
- "placeholder": "e.g: account name"
- },
- {
- "type": "textInput",
- "label": "API Key",
- "value": "apiKey",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/shopify/db_config.json b/data/sources/shopify/db_config.json
deleted file mode 100644
index af7e3f350..000000000
--- a/data/sources/shopify/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "Shopify",
- "category": "webhook",
- "displayName": "Shopify",
- "options": {
- "isBeta": false
- }
-}
\ No newline at end of file
diff --git a/data/sources/shopify/metadata.json b/data/sources/shopify/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/shopify/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/shopify/schema.json b/data/sources/shopify/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/shopify/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/shopify/ui_config.json b/data/sources/shopify/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/shopify/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/signl4/db_config.json b/data/sources/signl4/db_config.json
deleted file mode 100644
index edf28aa3c..000000000
--- a/data/sources/signl4/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "signl4",
- "category": "webhook",
- "displayName": "SIGNL4"
-}
\ No newline at end of file
diff --git a/data/sources/signl4/metadata.json b/data/sources/signl4/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/signl4/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/signl4/schema.json b/data/sources/signl4/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/signl4/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/signl4/ui_config.json b/data/sources/signl4/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/signl4/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer-recurly/db_config.json b/data/sources/singer-recurly/db_config.json
deleted file mode 100644
index df1c99f3c..000000000
--- a/data/sources/singer-recurly/db_config.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "singer-recurly",
- "category": "singer-protocol",
- "displayName": "Recurly",
- "options": {
- "isBeta": false,
- "image": "rudderstack/source-recurly:v2.0.0",
- "digest": "sha256:628d6c46a6b468f5df0ea637cbe1a37afcaade40bfea1110e8ded74a2187a5cd"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer-recurly/metadata.json b/data/sources/singer-recurly/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer-recurly/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer-recurly/schema.json b/data/sources/singer-recurly/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer-recurly/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer-recurly/ui_config.json b/data/sources/singer-recurly/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer-recurly/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_amplitude/metadata.json b/data/sources/singer_amplitude/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_amplitude/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_amplitude/schema.json b/data/sources/singer_amplitude/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_amplitude/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_amplitude/ui_config.json b/data/sources/singer_amplitude/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_amplitude/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_bing_ads/db_config.json b/data/sources/singer_bing_ads/db_config.json
deleted file mode 100644
index ee3b9f70c..000000000
--- a/data/sources/singer_bing_ads/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "singer-bing-ads",
- "category": "singer-protocol",
- "displayName": "Bing Ads V2",
- "options": {
- "auth": {
- "oauthRole": "bing_ads"
- },
- "isBeta": true,
- "image": "rudderstack/source-bing-ads:v4.0.5"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_bing_ads/metadata.json b/data/sources/singer_bing_ads/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_bing_ads/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_bing_ads/schema.json b/data/sources/singer_bing_ads/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_bing_ads/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_bing_ads/ui_config.json b/data/sources/singer_bing_ads/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_bing_ads/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_chargebee/db_config.json b/data/sources/singer_chargebee/db_config.json
deleted file mode 100644
index 787906d9e..000000000
--- a/data/sources/singer_chargebee/db_config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "singer-chargebee",
- "category": "singer-protocol",
- "displayName": "Chargebee",
- "options": {
- "image": "rudderstack/source-chargebee:v2.0.0",
- "digest": "sha256:b83d459bef179ebc5f17b82e0d58a1df111df5e59730ebe41137c06df7510061"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_chargebee/metadata.json b/data/sources/singer_chargebee/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_chargebee/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_chargebee/schema.json b/data/sources/singer_chargebee/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_chargebee/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_chargebee/ui_config.json b/data/sources/singer_chargebee/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_chargebee/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_customer_io/db_config.json b/data/sources/singer_customer_io/db_config.json
deleted file mode 100644
index d076a4628..000000000
--- a/data/sources/singer_customer_io/db_config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "singer-customer-io",
- "category": "singer-protocol",
- "displayName": "Customer.io",
- "options": {
- "image": "rudderstack/source-customer-io:v1",
- "digest": "sha256:177b64138c431332337ef946ff903a31883de51068475504978371797b8dd481"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_customer_io/metadata.json b/data/sources/singer_customer_io/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_customer_io/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_customer_io/schema.json b/data/sources/singer_customer_io/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_customer_io/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_customer_io/ui_config.json b/data/sources/singer_customer_io/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_customer_io/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_facebook_marketing/db_config.json b/data/sources/singer_facebook_marketing/db_config.json
deleted file mode 100644
index c53b59715..000000000
--- a/data/sources/singer_facebook_marketing/db_config.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "singer-facebook-marketing",
- "category": "singer-protocol",
- "displayName": "Facebook Marketing",
- "options": {
- "isBeta": true,
- "image": "rudderstack/source-facebook-marketing:v4.0.1",
- "hidden": false
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_facebook_marketing/metadata.json b/data/sources/singer_facebook_marketing/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_facebook_marketing/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_facebook_marketing/schema.json b/data/sources/singer_facebook_marketing/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_facebook_marketing/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_facebook_marketing/ui_config.json b/data/sources/singer_facebook_marketing/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_facebook_marketing/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_freshdesk/db_config.json b/data/sources/singer_freshdesk/db_config.json
deleted file mode 100644
index ffe04619f..000000000
--- a/data/sources/singer_freshdesk/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "singer-freshdesk",
- "category": "singer-protocol",
- "displayName": "Freshdesk",
- "options": {
- "image": "rudderstack/source-freshdesk:v4.0.3"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_freshdesk/metadata.json b/data/sources/singer_freshdesk/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_freshdesk/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_freshdesk/schema.json b/data/sources/singer_freshdesk/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_freshdesk/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_freshdesk/ui_config.json b/data/sources/singer_freshdesk/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_freshdesk/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_ads/db_config.json b/data/sources/singer_google_ads/db_config.json
deleted file mode 100644
index 90d1d2b88..000000000
--- a/data/sources/singer_google_ads/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "singer-google_adwords",
- "category": "singer-protocol",
- "displayName": "Google ads",
- "options": {
- "auth": {
- "provider": "Google"
- },
- "digest": "sha256:9b52972787a0747792ed43d0d909eee3f0d1c3fe755b2492e109d63cd9731fd6",
- "image": "rudderstack/source-google-ads:v4.0.6",
- "isBeta": false
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_ads/metadata.json b/data/sources/singer_google_ads/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_google_ads/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_ads/schema.json b/data/sources/singer_google_ads/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_google_ads/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_ads/ui_config.json b/data/sources/singer_google_ads/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_google_ads/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics/db_config.json b/data/sources/singer_google_analytics/db_config.json
deleted file mode 100644
index 274f1097f..000000000
--- a/data/sources/singer_google_analytics/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "singer-google-analytics",
- "category": "singer-protocol",
- "displayName": "Google Analytics",
- "options": {
- "auth": {
- "oauthRole": "singer-google-analytics",
- "provider": "Google"
- },
- "image": "rudderstack/source-google-analytics:v2.1"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics/metadata.json b/data/sources/singer_google_analytics/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_google_analytics/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics/schema.json b/data/sources/singer_google_analytics/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_google_analytics/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics/ui_config.json b/data/sources/singer_google_analytics/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_google_analytics/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics_v4/db_config.json b/data/sources/singer_google_analytics_v4/db_config.json
deleted file mode 100644
index b1f9fa5da..000000000
--- a/data/sources/singer_google_analytics_v4/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "singer-google-analytics-v4",
- "category": "singer-protocol",
- "displayName": "Google Analytics 4",
- "options": {
- "auth": {
- "oauthRole": "singer-google-analytics",
- "provider": "Google"
- },
- "isBeta": true,
- "image": "rudderstack/source-google-analytics-v4:v4.0.1"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics_v4/metadata.json b/data/sources/singer_google_analytics_v4/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_google_analytics_v4/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics_v4/schema.json b/data/sources/singer_google_analytics_v4/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_google_analytics_v4/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_analytics_v4/ui_config.json b/data/sources/singer_google_analytics_v4/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_google_analytics_v4/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_search_console/metadata.json b/data/sources/singer_google_search_console/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_google_search_console/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_search_console/schema.json b/data/sources/singer_google_search_console/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_google_search_console/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_search_console/ui_config.json b/data/sources/singer_google_search_console/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_google_search_console/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_sheets/db_config.json b/data/sources/singer_google_sheets/db_config.json
deleted file mode 100644
index 6ed77d47c..000000000
--- a/data/sources/singer_google_sheets/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "singer-google-sheets",
- "category": "singer-protocol",
- "displayName": "Google Sheets V2",
- "options": {
- "auth": {
- "provider": "Google"
- },
- "isBeta": true,
- "image": "rudderstack/source-google-sheets:v4.0.5"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_sheets/metadata.json b/data/sources/singer_google_sheets/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_google_sheets/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_sheets/schema.json b/data/sources/singer_google_sheets/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_google_sheets/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_google_sheets/ui_config.json b/data/sources/singer_google_sheets/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_google_sheets/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_hubspot/db_config.json b/data/sources/singer_hubspot/db_config.json
deleted file mode 100644
index d3d853a59..000000000
--- a/data/sources/singer_hubspot/db_config.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "singer-hubspot",
- "category": "singer-protocol",
- "displayName": "HubSpot",
- "options": {
- "auth": {
- "oauthRole": "hubspot"
- },
- "image": "rudderstack/source-hubspot:v4.0.5",
- "isBeta": false
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_hubspot/metadata.json b/data/sources/singer_hubspot/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_hubspot/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_hubspot/schema.json b/data/sources/singer_hubspot/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_hubspot/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_hubspot/ui_config.json b/data/sources/singer_hubspot/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_hubspot/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_intercom/metadata.json b/data/sources/singer_intercom/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_intercom/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_intercom/schema.json b/data/sources/singer_intercom/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_intercom/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_intercom/ui_config.json b/data/sources/singer_intercom/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_intercom/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_iterable/metadata.json b/data/sources/singer_iterable/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_iterable/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_iterable/schema.json b/data/sources/singer_iterable/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_iterable/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_iterable/ui_config.json b/data/sources/singer_iterable/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_iterable/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_klaviyo/db_config.json b/data/sources/singer_klaviyo/db_config.json
deleted file mode 100644
index cef004fae..000000000
--- a/data/sources/singer_klaviyo/db_config.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "singer-klaviyo",
- "category": "singer-protocol",
- "displayName": "Klaviyo",
- "options": {
- "digest": "sha256:da89670d1800b8b8e96987bc4a9660a383e7ba7d400d210908580f3c7fd07332",
- "image": "rudderstack/source-klaviyo:v2.0.0"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_klaviyo/metadata.json b/data/sources/singer_klaviyo/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_klaviyo/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_klaviyo/schema.json b/data/sources/singer_klaviyo/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_klaviyo/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_klaviyo/ui_config.json b/data/sources/singer_klaviyo/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_klaviyo/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_mailchimp/db_config.json b/data/sources/singer_mailchimp/db_config.json
deleted file mode 100644
index 907cfbd30..000000000
--- a/data/sources/singer_mailchimp/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "singer-mailchimp",
- "category": "singer-protocol",
- "displayName": "Mailchimp",
- "options": {
- "auth": {
- "oauthRole": "mailchimp"
- },
- "isBeta": true,
- "image": "rudderstack/source-mailchimp:v1",
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_mailchimp/metadata.json b/data/sources/singer_mailchimp/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_mailchimp/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_mailchimp/schema.json b/data/sources/singer_mailchimp/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_mailchimp/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_mailchimp/ui_config.json b/data/sources/singer_mailchimp/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_mailchimp/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_mixpanel/db_config.json b/data/sources/singer_mixpanel/db_config.json
deleted file mode 100644
index 7be834d13..000000000
--- a/data/sources/singer_mixpanel/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "singer-mixpanel",
- "category": "singer-protocol",
- "displayName": "Mixpanel",
- "options": {
- "image": "rudderstack/source-mixpanel:v2.0.1"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_mixpanel/metadata.json b/data/sources/singer_mixpanel/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_mixpanel/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_mixpanel/schema.json b/data/sources/singer_mixpanel/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_mixpanel/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_mixpanel/ui_config.json b/data/sources/singer_mixpanel/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_mixpanel/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_pardot/db_config.json b/data/sources/singer_pardot/db_config.json
deleted file mode 100644
index f3f37b6fd..000000000
--- a/data/sources/singer_pardot/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "singer-pardot",
- "category": "singer-protocol",
- "displayName": "Pardot",
- "options": {
- "auth": {
- "oauthRole": "pardot"
- },
- "isBeta": true,
- "image": "rudderstack/source-pardot:v1",
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_pardot/metadata.json b/data/sources/singer_pardot/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_pardot/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_pardot/schema.json b/data/sources/singer_pardot/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_pardot/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_pardot/ui_config.json b/data/sources/singer_pardot/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_pardot/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_pipedrive/db_config.json b/data/sources/singer_pipedrive/db_config.json
deleted file mode 100644
index a20a37ad4..000000000
--- a/data/sources/singer_pipedrive/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "singer-pipedrive",
- "category": "singer-protocol",
- "displayName": "Pipedrive",
- "options": {
- "auth": {
- "oauthRole": "pipedrive"
- },
- "isBeta": true,
- "image": "rudderstack/source-pipedrive:v1",
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_pipedrive/metadata.json b/data/sources/singer_pipedrive/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_pipedrive/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_pipedrive/schema.json b/data/sources/singer_pipedrive/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_pipedrive/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_pipedrive/ui_config.json b/data/sources/singer_pipedrive/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_pipedrive/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_quickbooks/db_config.json b/data/sources/singer_quickbooks/db_config.json
deleted file mode 100644
index ac44acf1c..000000000
--- a/data/sources/singer_quickbooks/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "singer-quickbooks",
- "category": "singer-protocol",
- "displayName": "Quickbooks",
- "options": {
- "auth": {
- "oauthRole": "quickbooks"
- },
- "isBeta": true,
- "image": "rudderstack/source-quickbooks:v1",
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_quickbooks/metadata.json b/data/sources/singer_quickbooks/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_quickbooks/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_quickbooks/schema.json b/data/sources/singer_quickbooks/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_quickbooks/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_quickbooks/ui_config.json b/data/sources/singer_quickbooks/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_quickbooks/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_salesforce/metadata.json b/data/sources/singer_salesforce/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_salesforce/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_salesforce/schema.json b/data/sources/singer_salesforce/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_salesforce/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_salesforce/ui_config.json b/data/sources/singer_salesforce/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_salesforce/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_sendgrid/metadata.json b/data/sources/singer_sendgrid/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_sendgrid/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_sendgrid/schema.json b/data/sources/singer_sendgrid/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_sendgrid/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_sendgrid/ui_config.json b/data/sources/singer_sendgrid/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_sendgrid/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_stripe/db_config.json b/data/sources/singer_stripe/db_config.json
deleted file mode 100644
index 6f90c4eeb..000000000
--- a/data/sources/singer_stripe/db_config.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "singer-stripe",
- "category": "singer-protocol",
- "displayName": "Stripe",
- "options": {
- "isBeta": true,
- "image": "rudderstack/source-stripe:v1",
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_stripe/metadata.json b/data/sources/singer_stripe/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_stripe/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_stripe/schema.json b/data/sources/singer_stripe/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_stripe/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_stripe/ui_config.json b/data/sources/singer_stripe/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_stripe/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_chat/db_config.json b/data/sources/singer_zendesk_chat/db_config.json
deleted file mode 100644
index fd6607da6..000000000
--- a/data/sources/singer_zendesk_chat/db_config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "singer-zendesk-chat",
- "category": "singer-protocol",
- "displayName": "Zendesk Chat",
- "options": {
- "auth": {
- "oauthRole": "singer-zendesk-chat"
- },
- "image": "rudderstack/source-zendesk-chat:v2.0.2"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_chat/metadata.json b/data/sources/singer_zendesk_chat/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_zendesk_chat/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_chat/schema.json b/data/sources/singer_zendesk_chat/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_zendesk_chat/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_chat/ui_config.json b/data/sources/singer_zendesk_chat/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_zendesk_chat/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_support/db_config.json b/data/sources/singer_zendesk_support/db_config.json
deleted file mode 100644
index fd2ee3aa4..000000000
--- a/data/sources/singer_zendesk_support/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "singer-zendesk-support",
- "category": "singer-protocol",
- "displayName": "Zendesk Support",
- "options": {
- "image": "rudderstack/source-zendesk-support:v1"
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_support/metadata.json b/data/sources/singer_zendesk_support/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/singer_zendesk_support/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_support/schema.json b/data/sources/singer_zendesk_support/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/singer_zendesk_support/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/singer_zendesk_support/ui_config.json b/data/sources/singer_zendesk_support/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/singer_zendesk_support/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/snowflake/db_config.json b/data/sources/snowflake/db_config.json
deleted file mode 100644
index 5bd6b8f68..000000000
--- a/data/sources/snowflake/db_config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "snowflake",
- "category": "warehouse",
- "displayName": "Snowflake",
- "options": {
- "syncBehaviours": [
- "upsert",
- "mirror"
- ],
- "isSqlModelSupported": true,
- "isAudienceSupported": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/snowflake/metadata.json b/data/sources/snowflake/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/snowflake/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/snowflake/schema.json b/data/sources/snowflake/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/snowflake/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/snowflake/ui_config.json b/data/sources/snowflake/ui_config.json
deleted file mode 100644
index fad4a7e20..000000000
--- a/data/sources/snowflake/ui_config.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "uiConfig": [
- {
- "title": "Connection Credentials",
- "secretFields": [
- "password"
- ],
- "docLinks": {
- "grantPermissions": "https://docs.rudderstack.com/reverse-etl/snowflake/#granting-permissions",
- "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/snowflake/#what-do-the-three-validations-under-verifying-credentials-imply",
- "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/snowflake/#specifying-the-data-to-import",
- "setupInstructions": "https://docs.rudderstack.com/reverse-etl/snowflake"
- },
- "nameField": "account",
- "fields": [
- {
- "type": "textInput",
- "label": "Account",
- "value": "account",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Database",
- "value": "dbname",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Warehouse",
- "value": "warehouse",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "addInAccountSummary": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "User",
- "value": "user",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true,
- "trim": true
- },
- {
- "type": "textInput",
- "label": "Password",
- "value": "password",
- "inputFieldType": "password",
- "regex": ".*",
- "required": true,
- "secret": true
- },
- {
- "type": "singleSelect",
- "label": "Choose your Cloud",
- "value": "cloudProvider",
- "options": [
- {
- "name": "Amazon Web Services",
- "value": "AWS"
- },
- {
- "name": "Google Cloud Platform",
- "value": "GCP"
- },
- {
- "name": "Microsoft Azure",
- "value": "AZURE"
- }
- ],
- "defaultOption": {
- "name": "Amazon Web Services",
- "value": "AWS"
- },
- "required": true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/data/sources/stripe/db_config.json b/data/sources/stripe/db_config.json
deleted file mode 100644
index 076a86712..000000000
--- a/data/sources/stripe/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "stripe",
- "category": "cloud",
- "displayName": "Stripe"
-}
\ No newline at end of file
diff --git a/data/sources/stripe/metadata.json b/data/sources/stripe/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/stripe/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/stripe/schema.json b/data/sources/stripe/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/stripe/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/stripe/ui_config.json b/data/sources/stripe/ui_config.json
deleted file mode 100644
index f39982687..000000000
--- a/data/sources/stripe/ui_config.json
+++ /dev/null
@@ -1,130 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "type": "singleSelect",
- "label": "Stripe Version",
- "value": "stripeVersion",
- "options": [
- {
- "name": "2020-08-27",
- "value": "2020-08-27"
- },
- {
- "name": "2020-03-02",
- "value": "2020-03-02"
- },
- {
- "name": "2019-12-03",
- "value": "2019-12-03"
- },
- {
- "name": "2019-11-05",
- "value": "2019-11-05"
- },
- {
- "name": "2019-10-17",
- "value": "2019-10-17"
- },
- {
- "name": "2019-10-08",
- "value": "2019-10-08"
- },
- {
- "name": "2019-09-09",
- "value": "2019-09-09"
- },
- {
- "name": "2019-08-14",
- "value": "2019-08-14"
- },
- {
- "name": "2019-05-16",
- "value": "2019-05-16"
- },
- {
- "name": "2019-03-14",
- "value": "2019-03-14"
- },
- {
- "name": "2019-02-19",
- "value": "2019-02-19"
- },
- {
- "name": "2019-02-11",
- "value": "2019-02-11"
- },
- {
- "name": "2018-11-08",
- "value": "2018-11-08"
- },
- {
- "name": "2018-10-31",
- "value": "2018-10-31"
- },
- {
- "name": "2018-09-24",
- "value": "2018-09-24"
- },
- {
- "name": "2018-08-23",
- "value": "2018-08-23"
- },
- {
- "name": "2018-07-27",
- "value": "2018-07-27"
- },
- {
- "name": "2018-05-21",
- "value": "2018-05-21"
- },
- {
- "name": "2018-02-28",
- "value": "2018-02-28"
- },
- {
- "name": "2018-02-05",
- "value": "2018-02-05"
- },
- {
- "name": "2018-01-23",
- "value": "2018-01-23"
- },
- {
- "name": "2017-12-14",
- "value": "2017-12-14"
- },
- {
- "name": "2017-08-15",
- "value": "2017-08-15"
- },
- {
- "name": "2017-05-25",
- "value": "2017-05-25"
- },
- {
- "name": "2017-04-06",
- "value": "2017-04-06"
- },
- {
- "name": "2017-02-14",
- "value": "2017-02-14"
- }
- ],
- "defaultOption": {
- "name": "Default Version",
- "value": ""
- },
- "required": true
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/unity/db_config.json b/data/sources/unity/db_config.json
deleted file mode 100644
index 09cf7aa21..000000000
--- a/data/sources/unity/db_config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Unity",
- "displayName": "Unity"
-}
\ No newline at end of file
diff --git a/data/sources/unity/metadata.json b/data/sources/unity/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/unity/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/unity/schema.json b/data/sources/unity/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/unity/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/unity/ui_config.json b/data/sources/unity/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/unity/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/webhook/db_config.json b/data/sources/webhook/db_config.json
deleted file mode 100644
index 49a098057..000000000
--- a/data/sources/webhook/db_config.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "webhook",
- "category": "webhook",
- "displayName": "Webhook Source"
-}
\ No newline at end of file
diff --git a/data/sources/webhook/metadata.json b/data/sources/webhook/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/webhook/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/webhook/schema.json b/data/sources/webhook/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/webhook/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/webhook/ui_config.json b/data/sources/webhook/ui_config.json
deleted file mode 100644
index 84fcddaca..000000000
--- a/data/sources/webhook/ui_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "uiConfig": null
-}
\ No newline at end of file
diff --git a/data/sources/xero/db_config.json b/data/sources/xero/db_config.json
deleted file mode 100644
index 0a64a3b01..000000000
--- a/data/sources/xero/db_config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "xero",
- "category": "cloud",
- "displayName": "Xero",
- "options": {
- "auth": {
- "provider": "Xero"
- },
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/xero/metadata.json b/data/sources/xero/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/xero/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/xero/schema.json b/data/sources/xero/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/xero/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/xero/ui_config.json b/data/sources/xero/ui_config.json
deleted file mode 100644
index 426416e5a..000000000
--- a/data/sources/xero/ui_config.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth"
- },
- "config": [
- {
- "title": "Source Settings",
- "fields": [
- {
- "method": "post",
- "type": "dynamicSelect",
- "url": "/cloudSources/info/roles/xero/info/tenants",
- "label": "Tenant Id",
- "labelKey": "tenantId",
- "valueKey": "tenantId",
- "value": "tenantId",
- "required": true
- },
- {
- "type": "singleSelect",
- "label": "Earliest report year",
- "value": "reportStartYear",
- "footerNote": "Fetch monthly reports starting from this year.",
- "required": true,
- "options": [
- 2019,
- 2018,
- 2017,
- 2016,
- 2015
- ],
- "default": 2019
- },
- {
- "type": "singleSelect",
- "label": "Report starting month",
- "value": "reportPastMonths",
- "footerNote": "Starting month for each monthly report.",
- "required": true,
- "options": [
- 1,
- 3,
- 6,
- 12
- ],
- "default": 6
- }
- ]
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/data/sources/zendesk/db_config.json b/data/sources/zendesk/db_config.json
deleted file mode 100644
index 49d894955..000000000
--- a/data/sources/zendesk/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "zendesk",
- "category": "cloud",
- "displayName": "Zendesk",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/zendesk/metadata.json b/data/sources/zendesk/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/zendesk/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/zendesk/schema.json b/data/sources/zendesk/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/zendesk/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/zendesk/ui_config.json b/data/sources/zendesk/ui_config.json
deleted file mode 100644
index 141d67169..000000000
--- a/data/sources/zendesk/ui_config.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "form",
- "secretFields": [
- "token"
- ],
- "nameField": "username",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Subdomain",
- "value": "subdomain",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Zendesk username (Email)",
- "value": "username",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- },
- {
- "type": "textInput",
- "label": "Token",
- "value": "token",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value",
- "required": true
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/zendesk_chat/db_config.json b/data/sources/zendesk_chat/db_config.json
deleted file mode 100644
index 8c6d748b2..000000000
--- a/data/sources/zendesk_chat/db_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "zendesk_chat",
- "category": "cloud",
- "displayName": "Zendesk Chat",
- "options": {
- "hidden": true
- }
-}
\ No newline at end of file
diff --git a/data/sources/zendesk_chat/metadata.json b/data/sources/zendesk_chat/metadata.json
deleted file mode 100644
index 3ac9c5571..000000000
--- a/data/sources/zendesk_chat/metadata.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "metadata": {
- "primaryCategory": "",
- "secondaryCategory": [],
- "docLink": "",
- "logoPath": "",
- "releaseStatus": "beta",
- "sourceCode": {
- "github": "",
- "version": "v1.0.0"
- }
- }
-}
\ No newline at end of file
diff --git a/data/sources/zendesk_chat/schema.json b/data/sources/zendesk_chat/schema.json
deleted file mode 100644
index 0d2667101..000000000
--- a/data/sources/zendesk_chat/schema.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "configSchema": null
-}
\ No newline at end of file
diff --git a/data/sources/zendesk_chat/ui_config.json b/data/sources/zendesk_chat/ui_config.json
deleted file mode 100644
index 45e72c332..000000000
--- a/data/sources/zendesk_chat/ui_config.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "uiConfig": {
- "auth": {
- "type": "OAuth",
- "config": [
- {
- "fields": [
- {
- "type": "textInput",
- "label": "Subdomain",
- "value": "subdomain",
- "required": true,
- "footerNote": "Subdomain of your Zendesk Chat URL",
- "regex": "^(.{0,100})$",
- "regexErrorMessage": "Invalid Value"
- }
- ]
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/jest.config.js b/jest.config.js
index c086fac75..1ad333852 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,10 +1,8 @@
-const { pathsToModuleNameMapper } = require('ts-jest');
-const { compilerOptions } = require('./tsconfig.paths.json');
-
// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html
module.exports = {
+ prettierPath: 'prettier',
// All imported modules in your tests should be mocked automatically
// automock: false,
@@ -15,35 +13,41 @@ module.exports = {
// browser: false,
// The directory where Jest should store its cached dependency information
- // cacheDirectory: "/private/var/folders/bj/xt4sffgd21z57fxhvqrd30_80000gn/T/jest_dx",
+ cacheDirectory: '/node_modules/.cache/unit-tests',
// Automatically clear mock calls and instances between every test
- // clearMocks: false,
+ clearMocks: true,
// Indicates whether the coverage information should be collected while executing the test
// collectCoverage: false,
// An array of glob patterns indicating a set of files for which coverage information should be collected
- // collectCoverageFrom: null,
+ collectCoverageFrom: ['src/**/*.[jt]s'],
// The directory where Jest should output its coverage files
- coverageDirectory: 'coverage',
+ coverageDirectory: 'reports/coverage',
// An array of regexp pattern strings used to skip coverage collection
- coveragePathIgnorePatterns: [
- '/node_modules/',
- ],
+ coveragePathIgnorePatterns: [],
// A list of reporter names that Jest uses when writing coverage reports
// coverageReporters: [
// "json",
// "text",
// "lcov",
- // "clover"
+ // "clover",
+ // { projectRoot: '/'}
// ],
// An object that configures minimum threshold enforcement for coverage results
- // coverageThreshold: null,
+ coverageThreshold: {
+ global: {
+ branches: 100,
+ functions: 100,
+ lines: 100,
+ statements: 100,
+ },
+ },
// A path to a custom dependency extractor
// dependencyExtractor: null,
@@ -82,10 +86,7 @@ module.exports = {
// ],
// A map from regular expressions to module names that allow to stub out resources with a single module
- moduleNameMapper: {
- ...pathsToModuleNameMapper(compilerOptions.paths, { prefix: '/' }),
- '^__tests__/(.*)$': '/__tests__/$1',
- },
+ // moduleNameMapper: {},
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
// modulePathIgnorePatterns: [],
@@ -147,20 +148,10 @@ module.exports = {
// testLocationInResults: false,
// The glob patterns Jest uses to detect test files
- // testMatch: [
- // "**/__tests__/**/*.[jt]s?(x)",
- // "**/?(*.)+(spec|test).[tj]s?(x)"
- // ],
+ testMatch: ['/test/**/*test.[jt]s?(x)', '/test/**/?(*.)+(spec|test).[tj]s?(x)'],
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
- testPathIgnorePatterns: [
- '/node_modules/',
- 'migration',
- 'generic.test.js',
- '__tests__/v1/',
- '__tests__/config.js',
- '__tests__/testUtils.ts',
- ],
+ testPathIgnorePatterns: ['/node_modules/'],
// The regexp pattern or array of patterns that Jest uses to detect test files
// testRegex: [],
@@ -191,7 +182,7 @@ module.exports = {
// unmockedModulePathPatterns: undefined,
// Indicates whether each individual test should be reported during the run
- // verbose: null,
+ verbose: true,
// An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
watchPathIgnorePatterns: ['node_modules'],
diff --git a/migration/dest_meta_template.json b/migration/dest_meta_template.json
index eb27f6bb0..59c4d726b 100644
--- a/migration/dest_meta_template.json
+++ b/migration/dest_meta_template.json
@@ -1,4 +1,3 @@
-
{
"metadata": {
"primaryCategory": "",
@@ -24,4 +23,3 @@
}
}
}
-
diff --git a/migration/migrate.py b/migration/migrate.py
index 8748c593e..79c958304 100644
--- a/migration/migrate.py
+++ b/migration/migrate.py
@@ -10,6 +10,10 @@
SOURCE_CONFIG_BE_FILE_PATH = 'rudder-config-backend/src/scripts/sourceConfigs/'
# SOURCE_SCHEMA_FILE_PATH = 'rudder-config-backend/src/scripts/schemaList/destinations/'
+CONFIGURATIONS_DIR_PATH = '../src/configurations'
+DEST_CONFIG_PATH = f'{CONFIGURATIONS_DIR_PATH}/destinations'
+SRC_CONFIG_PATH = f'{CONFIGURATIONS_DIR_PATH}/sources'
+
def update_destination():
dest_list = [d[:-5].lower() for d in os.listdir(f'../../{DEST_CONFIG_BE_FILE_PATH}')]
for dest in dest_list:
@@ -45,14 +49,14 @@ def update_destination():
########################
## write new files
########################
- if dest not in os.listdir('../data/destinations'):
- os.system(f'mkdir ../data/destinations/{dest}')
+ if dest not in os.listdir(DEST_CONFIG_PATH):
+ os.system(f'mkdir {DEST_CONFIG_PATH}/{dest}')
print (f'created directory for {dest}')
- file_names = ['db_config', 'ui_config', 'schema', 'metadata']
+ file_names = ['db-config', 'ui-config', 'schema', 'metadata']
for index, f_name in enumerate(file_names):
print (f'writing {f_name} for {dest}...')
- with open(f'../data/destinations/{dest}/{f_name}.json', 'w') as f:
+ with open(f'{DEST_CONFIG_PATH}/{dest}/{f_name}.json', 'w') as f:
f.write(json.dumps(final_data[index], indent=2))
print (f'complete for {dest}...')
@@ -96,14 +100,14 @@ def update_source():
########################
## write new files
########################
- if source not in os.listdir('../data/sources'):
- os.system(f'mkdir ../data/sources/{source}')
+ if source not in os.listdir(SRC_CONFIG_PATH):
+ os.system(f'mkdir {SRC_CONFIG_PATH}/{source}')
print (f'created directory for {source}')
file_names = ['db_config', 'ui_config', 'schema', 'metadata']
for index, f_name in enumerate(file_names):
print (f'writing {f_name} for {source}...')
- with open(f'../data/sources/{source}/{f_name}.json', 'w') as f:
+ with open(f'{SRC_CONFIG_PATH}/{source}/{f_name}.json', 'w') as f:
f.write(json.dumps(final_data[index], indent=2))
print (f'complete for {source}...')
diff --git a/migration/source_meta_template.json b/migration/source_meta_template.json
index cfc632d3b..1aa657680 100644
--- a/migration/source_meta_template.json
+++ b/migration/source_meta_template.json
@@ -11,4 +11,3 @@
}
}
}
-
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..c62a56fb4
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,24979 @@
+{
+ "name": "rudder-config-schema",
+ "version": "1.1.8",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "rudder-config-schema",
+ "version": "1.1.8",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.11.2",
+ "glob": "^8.0.3"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.20.5",
+ "@babel/eslint-parser": "^7.19.1",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.18.6",
+ "@babel/plugin-transform-object-assign": "^7.18.6",
+ "@babel/preset-env": "^7.20.2",
+ "@commitlint/config-conventional": "^17.3.0",
+ "@digitalroute/cz-conventional-changelog-for-jira": "^8.0.0",
+ "@swc/core": "^1.3.24",
+ "@swc/jest": "^0.2.24",
+ "@types/express": "^4.17.15",
+ "@types/glob": "^8.0.0",
+ "@types/jest": "^29.2.4",
+ "@typescript-eslint/eslint-plugin": "^5.47.0",
+ "@typescript-eslint/parser": "^5.47.0",
+ "commander": "^9.4.1",
+ "commitizen": "^4.2.6",
+ "commitlint": "^17.3.0",
+ "conventional-github-releaser": "^3.1.5",
+ "eslint": "^8.30.0",
+ "eslint-config-airbnb": "^19.0.4",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-plugin-compat": "^4.0.2",
+ "eslint-plugin-import": "^2.26.0",
+ "eslint-plugin-json": "^3.1.0",
+ "eslint-plugin-unicorn": "^45.0.2",
+ "esm": "^3.2.25",
+ "husky": "^8.0.2",
+ "jest": "^29.3.1",
+ "lint-staged": "^13.1.0",
+ "prettier": "^2.8.1",
+ "standard-version": "^9.5.0",
+ "ts-jest": "^29.0.3",
+ "ts-loader": "^9.4.2",
+ "typescript": "^4.9.4"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz",
+ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz",
+ "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-module-transforms": "^7.20.2",
+ "@babel/helpers": "^7.20.5",
+ "@babel/parser": "^7.20.5",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
+ },
+ "node_modules/@babel/eslint-parser": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
+ "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
+ "dev": true,
+ "dependencies": {
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.11.0",
+ "eslint": "^7.5.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz",
+ "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "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/@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
+ "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-explode-assignable-expression": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+ "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.20.0",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "regexpu-core": "^5.2.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
+ "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0-0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-explode-assignable-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
+ "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
+ "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.18.10",
+ "@babel/types": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
+ "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
+ "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.20.2",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
+ "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-wrap-function": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
+ "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/traverse": "^7.19.1",
+ "@babel/types": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz",
+ "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz",
+ "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/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==",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
+ "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
+ "dev": true,
+ "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.18.6",
+ "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.18.6.tgz",
+ "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
+ "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-remap-async-to-generator": "^7.18.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-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-static-block": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
+ "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-dynamic-import": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
+ "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
+ "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@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-proposal-json-strings": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
+ "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
+ "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@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-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz",
+ "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@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-proposal-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-methods": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz",
+ "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@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-proposal-unicode-property-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
+ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "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-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
+ "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
+ "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-remap-async-to-generator": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
+ "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz",
+ "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz",
+ "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-split-export-declaration": "^7.18.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.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
+ "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz",
+ "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
+ "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "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-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
+ "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
+ "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.18.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
+ "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
+ "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
+ "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.19.6",
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz",
+ "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.19.6",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-simple-access": "^7.19.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
+ "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-module-transforms": "^7.19.6",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-validator-identifier": "^7.19.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
+ "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz",
+ "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
+ "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-assign": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz",
+ "integrity": "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
+ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz",
+ "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
+ "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz",
+ "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "regenerator-transform": "^0.15.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
+ "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
+ "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
+ "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
+ "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
+ "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
+ "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "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-0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
+ "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-proposal-class-static-block": "^7.18.6",
+ "@babel/plugin-proposal-dynamic-import": "^7.18.6",
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
+ "@babel/plugin-proposal-json-strings": "^7.18.6",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "@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.20.0",
+ "@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-transform-arrow-functions": "^7.18.6",
+ "@babel/plugin-transform-async-to-generator": "^7.18.6",
+ "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
+ "@babel/plugin-transform-block-scoping": "^7.20.2",
+ "@babel/plugin-transform-classes": "^7.20.2",
+ "@babel/plugin-transform-computed-properties": "^7.18.9",
+ "@babel/plugin-transform-destructuring": "^7.20.2",
+ "@babel/plugin-transform-dotall-regex": "^7.18.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.18.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
+ "@babel/plugin-transform-for-of": "^7.18.8",
+ "@babel/plugin-transform-function-name": "^7.18.9",
+ "@babel/plugin-transform-literals": "^7.18.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.18.6",
+ "@babel/plugin-transform-modules-amd": "^7.19.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.19.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.19.6",
+ "@babel/plugin-transform-modules-umd": "^7.18.6",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
+ "@babel/plugin-transform-new-target": "^7.18.6",
+ "@babel/plugin-transform-object-super": "^7.18.6",
+ "@babel/plugin-transform-parameters": "^7.20.1",
+ "@babel/plugin-transform-property-literals": "^7.18.6",
+ "@babel/plugin-transform-regenerator": "^7.18.6",
+ "@babel/plugin-transform-reserved-words": "^7.18.6",
+ "@babel/plugin-transform-shorthand-properties": "^7.18.6",
+ "@babel/plugin-transform-spread": "^7.19.0",
+ "@babel/plugin-transform-sticky-regex": "^7.18.6",
+ "@babel/plugin-transform-template-literals": "^7.18.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.18.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.18.10",
+ "@babel/plugin-transform-unicode-regex": "^7.18.6",
+ "@babel/preset-modules": "^0.1.5",
+ "@babel/types": "^7.20.2",
+ "babel-plugin-polyfill-corejs2": "^0.3.3",
+ "babel-plugin-polyfill-corejs3": "^0.6.0",
+ "babel-plugin-polyfill-regenerator": "^0.4.1",
+ "core-js-compat": "^3.25.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz",
+ "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==",
+ "dev": true,
+ "dependencies": {
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/runtime-corejs3": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz",
+ "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "core-js-pure": "^3.25.1",
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz",
+ "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz",
+ "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "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==",
+ "dev": true
+ },
+ "node_modules/@commitlint/cli": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.3.0.tgz",
+ "integrity": "sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/format": "^17.0.0",
+ "@commitlint/lint": "^17.3.0",
+ "@commitlint/load": "^17.3.0",
+ "@commitlint/read": "^17.2.0",
+ "@commitlint/types": "^17.0.0",
+ "execa": "^5.0.0",
+ "lodash.isfunction": "^3.0.9",
+ "resolve-from": "5.0.0",
+ "resolve-global": "1.0.0",
+ "yargs": "^17.0.0"
+ },
+ "bin": {
+ "commitlint": "cli.js"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/config-conventional": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.3.0.tgz",
+ "integrity": "sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-conventionalcommits": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/config-conventional/node_modules/conventional-changelog-conventionalcommits": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz",
+ "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "lodash": "^4.17.15",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@commitlint/config-validator": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.1.0.tgz",
+ "integrity": "sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/types": "^17.0.0",
+ "ajv": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/ensure": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.3.0.tgz",
+ "integrity": "sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/types": "^17.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "lodash.kebabcase": "^4.1.1",
+ "lodash.snakecase": "^4.1.1",
+ "lodash.startcase": "^4.4.0",
+ "lodash.upperfirst": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/execute-rule": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz",
+ "integrity": "sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/format": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.0.0.tgz",
+ "integrity": "sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/types": "^17.0.0",
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/is-ignored": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.2.0.tgz",
+ "integrity": "sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/types": "^17.0.0",
+ "semver": "7.3.7"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/is-ignored/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@commitlint/lint": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.3.0.tgz",
+ "integrity": "sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/is-ignored": "^17.2.0",
+ "@commitlint/parse": "^17.2.0",
+ "@commitlint/rules": "^17.3.0",
+ "@commitlint/types": "^17.0.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/load": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.3.0.tgz",
+ "integrity": "sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/config-validator": "^17.1.0",
+ "@commitlint/execute-rule": "^17.0.0",
+ "@commitlint/resolve-extends": "^17.3.0",
+ "@commitlint/types": "^17.0.0",
+ "@types/node": "^14.0.0",
+ "chalk": "^4.1.0",
+ "cosmiconfig": "^7.0.0",
+ "cosmiconfig-typescript-loader": "^4.0.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.merge": "^4.6.2",
+ "lodash.uniq": "^4.5.0",
+ "resolve-from": "^5.0.0",
+ "ts-node": "^10.8.1",
+ "typescript": "^4.6.4"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/load/node_modules/@types/node": {
+ "version": "14.18.35",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.35.tgz",
+ "integrity": "sha512-2ATO8pfhG1kDvw4Lc4C0GXIMSQFFJBCo/R1fSgTwmUlq5oy95LXyjDQinsRVgQY6gp6ghh3H91wk9ES5/5C+Tw==",
+ "dev": true
+ },
+ "node_modules/@commitlint/message": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.2.0.tgz",
+ "integrity": "sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/parse": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.2.0.tgz",
+ "integrity": "sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/types": "^17.0.0",
+ "conventional-changelog-angular": "^5.0.11",
+ "conventional-commits-parser": "^3.2.2"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/read": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.2.0.tgz",
+ "integrity": "sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/top-level": "^17.0.0",
+ "@commitlint/types": "^17.0.0",
+ "fs-extra": "^10.0.0",
+ "git-raw-commits": "^2.0.0",
+ "minimist": "^1.2.6"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/read/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@commitlint/resolve-extends": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.3.0.tgz",
+ "integrity": "sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/config-validator": "^17.1.0",
+ "@commitlint/types": "^17.0.0",
+ "import-fresh": "^3.0.0",
+ "lodash.mergewith": "^4.6.2",
+ "resolve-from": "^5.0.0",
+ "resolve-global": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/rules": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.3.0.tgz",
+ "integrity": "sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/ensure": "^17.3.0",
+ "@commitlint/message": "^17.2.0",
+ "@commitlint/to-lines": "^17.0.0",
+ "@commitlint/types": "^17.0.0",
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/to-lines": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.0.0.tgz",
+ "integrity": "sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/top-level": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.0.0.tgz",
+ "integrity": "sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/types": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.0.0.tgz",
+ "integrity": "sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@digitalroute/cz-conventional-changelog-for-jira/-/cz-conventional-changelog-for-jira-8.0.0.tgz",
+ "integrity": "sha512-oK2UE9QhKl/8Tn1d9r184XQRwsCxkFu5zh572LT1pBYEyK1G5IY1mDj5wgP6Wm/EesGCgJ09loW9dFdNeaB3yA==",
+ "dev": true,
+ "dependencies": {
+ "boxen": "^5.1.2",
+ "chalk": "^2.4.1",
+ "commitizen": "^4.2.6",
+ "cz-conventional-changelog": "^3.3.0",
+ "inquirer": "^8.2.4",
+ "lodash.map": "^4.5.1",
+ "longest": "^2.0.1",
+ "right-pad": "^1.0.1",
+ "word-wrap": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@commitlint/load": ">6.1.1"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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==",
+ "dev": true
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@digitalroute/cz-conventional-changelog-for-jira/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.1.2.tgz",
+ "integrity": "sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==",
+ "dev": true,
+ "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/eslintrc": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz",
+ "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.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/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "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/@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==",
+ "dev": true
+ },
+ "node_modules/@eslint/eslintrc/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz",
+ "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz",
+ "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.3.1",
+ "@jest/reporters": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@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.2.0",
+ "jest-config": "^29.3.1",
+ "jest-haste-map": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-regex-util": "^29.2.0",
+ "jest-resolve": "^29.3.1",
+ "jest-resolve-dependencies": "^29.3.1",
+ "jest-runner": "^29.3.1",
+ "jest-runtime": "^29.3.1",
+ "jest-snapshot": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "jest-watcher": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.3.1",
+ "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/create-cache-key-function": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz",
+ "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": {
+ "version": "16.0.4",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
+ "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz",
+ "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==",
+ "dev": true,
+ "dependencies": {
+ "@jest/fake-timers": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "jest-mock": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz",
+ "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==",
+ "dev": true,
+ "dependencies": {
+ "expect": "^29.3.1",
+ "jest-snapshot": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz",
+ "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.2.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz",
+ "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "@sinonjs/fake-timers": "^9.1.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.3.1",
+ "jest-mock": "^29.3.1",
+ "jest-util": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz",
+ "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.3.1",
+ "@jest/expect": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "jest-mock": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz",
+ "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==",
+ "dev": true,
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "@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": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-worker": "^29.3.1",
+ "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/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.0.0",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz",
+ "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.24.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz",
+ "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz",
+ "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@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.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz",
+ "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.3.1",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.3.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz",
+ "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.3.1",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "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.3.1",
+ "jest-regex-util": "^29.2.0",
+ "jest-util": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz",
+ "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.0.0",
+ "@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/@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "peer": true,
+ "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/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==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "node_modules/@mdn/browser-compat-data": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
+ "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
+ "dev": true
+ },
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-scope": "5.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.24.51",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
+ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==",
+ "dev": true
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
+ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "node_modules/@swc/core": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.24.tgz",
+ "integrity": "sha512-QMOTd0AgiUT3K1crxLRqd3gw0f3FC8hhH1vvlIlryvYqU4c+FJ/T2G4ZhMKLxQlZ/jX6Rhk0gKINZRBxy2GFyQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "swcx": "run_swcx.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/swc"
+ },
+ "optionalDependencies": {
+ "@swc/core-darwin-arm64": "1.3.24",
+ "@swc/core-darwin-x64": "1.3.24",
+ "@swc/core-linux-arm-gnueabihf": "1.3.24",
+ "@swc/core-linux-arm64-gnu": "1.3.24",
+ "@swc/core-linux-arm64-musl": "1.3.24",
+ "@swc/core-linux-x64-gnu": "1.3.24",
+ "@swc/core-linux-x64-musl": "1.3.24",
+ "@swc/core-win32-arm64-msvc": "1.3.24",
+ "@swc/core-win32-ia32-msvc": "1.3.24",
+ "@swc/core-win32-x64-msvc": "1.3.24"
+ }
+ },
+ "node_modules/@swc/core-darwin-arm64": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.24.tgz",
+ "integrity": "sha512-rR+9UpWm+fGXcipsjCst2hIL1GYIbo0YTLhJZWdIpQD6KRHHJMFXiydMgQQkDj2Ml7HpqUVgxj6m4ZWYL8b0OA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-darwin-x64": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.24.tgz",
+ "integrity": "sha512-px+5vkGtgPH0m3FkkTBHynlRdS5rRz+lK+wiXIuBZFJSySWFl6RkKbvwkD+sf0MpazQlqwlv/rTOGJBw6oDffg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm-gnueabihf": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.24.tgz",
+ "integrity": "sha512-jLs8ZOdTV4UW4J12E143QJ4mOMONQtqgAnuhBbRuWFzQ3ny1dfoC3P1jNWAJ2Xi59XdxAIXn0PggPNH4Kh34kw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm64-gnu": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.24.tgz",
+ "integrity": "sha512-A/v0h70BekrwGpp1DlzIFGcHQ3QQ2PexXcnnuIBZeMc9gNmHlcZmg3EcwAnaUDiokhNuSUFA/wV94yk1OqmSkw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-arm64-musl": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.24.tgz",
+ "integrity": "sha512-pbc9eArWPTiMrbpS/pJo0IiQNAKAQBcBIDjWBGP1tcw2iDXYLw4bruwz9kI/VjakbshWb8MoE4T5ClkeuULvSw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-x64-gnu": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.24.tgz",
+ "integrity": "sha512-pP5pOLlY1xd352qo7rTlpVPUI9/9VhOd4b3Lk+LzfZDq9bTL2NDlGfyrPiwa5DGHMSzrugH56K2J68eutkxYVA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-linux-x64-musl": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.24.tgz",
+ "integrity": "sha512-phNbP7zGp+Wcyxq1Qxlpe5KkxO7WLT2kVQUC7aDFGlVdCr+xdXsfH1MzheHtnr0kqTVQX1aiM8XXXHfFxR0oNA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-arm64-msvc": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.24.tgz",
+ "integrity": "sha512-qhbiJTWAOqyR+K9xnGmCkOWSz2EmWpDBstEJCEOTc6FZiEdbiTscDmqTcMbCKaTHGu8t+6erVA4t65/Eg6uWPA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-ia32-msvc": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.24.tgz",
+ "integrity": "sha512-JfghIlscE4Rz+Lc08lSoDh+R0cWxrISed5biogFfE6vZqhaDnw3E5Qshqw7O3pIaiq8L2u1nmzuyP581ZmpbRA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/core-win32-x64-msvc": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.24.tgz",
+ "integrity": "sha512-3AmJRr0hwciwDBbzUNqaftvppzS8v9X/iv/Wl7YaVLBVpPfQvaZzfqLycvNMGLZb5vIKXR/u58txg3dRBGsJtw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@swc/jest": {
+ "version": "0.2.24",
+ "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.24.tgz",
+ "integrity": "sha512-fwgxQbM1wXzyKzl1+IW0aGrRvAA8k0Y3NxFhKigbPjOJ4mCKnWEcNX9HQS3gshflcxq8YKhadabGUVfdwjCr6Q==",
+ "dev": true,
+ "dependencies": {
+ "@jest/create-cache-key-function": "^27.4.2",
+ "jsonc-parser": "^3.2.0"
+ },
+ "engines": {
+ "npm": ">= 7.0.0"
+ },
+ "peerDependencies": {
+ "@swc/core": "*"
+ }
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
+ "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
+ "dev": true
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.1.20",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz",
+ "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
+ "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
+ "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz",
+ "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "dev": true,
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.35",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
+ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/eslint": {
+ "version": "8.4.10",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz",
+ "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz",
+ "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.31",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.17.31",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
+ "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "node_modules/@types/glob": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz",
+ "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==",
+ "dev": true,
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
+ "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/jest": {
+ "version": "29.2.4",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz",
+ "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==",
+ "dev": true,
+ "dependencies": {
+ "expect": "^29.0.0",
+ "pretty-format": "^29.0.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/@types/mime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
+ "dev": true
+ },
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "18.11.17",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
+ "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==",
+ "dev": true
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "dev": true
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==",
+ "dev": true
+ },
+ "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/range-parser": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
+ "dev": true
+ },
+ "node_modules/@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
+ "dev": true,
+ "dependencies": {
+ "@types/mime": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
+ "dev": true
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.17",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz",
+ "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz",
+ "integrity": "sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.47.0",
+ "@typescript-eslint/type-utils": "5.47.0",
+ "@typescript-eslint/utils": "5.47.0",
+ "debug": "^4.3.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.0.tgz",
+ "integrity": "sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.47.0",
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/typescript-estree": "5.47.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz",
+ "integrity": "sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/visitor-keys": "5.47.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz",
+ "integrity": "sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.47.0",
+ "@typescript-eslint/utils": "5.47.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.0.tgz",
+ "integrity": "sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz",
+ "integrity": "sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/visitor-keys": "5.47.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.0.tgz",
+ "integrity": "sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.47.0",
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/typescript-estree": "5.47.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz",
+ "integrity": "sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.47.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/acorn": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "dev": true,
+ "peer": true,
+ "peerDependencies": {
+ "acorn": "^8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz",
+ "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==",
+ "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/ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "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.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "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.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ast-metadata-inferer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
+ "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "dev": true,
+ "dependencies": {
+ "@mdn/browser-compat-data": "^3.3.14"
+ }
+ },
+ "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
+ "version": "3.3.14",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
+ "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/axe-core": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz",
+ "integrity": "sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/babel-jest": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz",
+ "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/transform": "^29.3.1",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.2.0",
+ "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-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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz",
+ "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==",
+ "dev": true,
+ "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.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
+ "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "semver": "^6.1.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz",
+ "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "core-js-compat": "^3.25.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
+ "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.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==",
+ "dev": true,
+ "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.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz",
+ "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.2.0",
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/boxen": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.0",
+ "cli-boxes": "^2.2.1",
+ "string-width": "^4.2.2",
+ "type-fest": "^0.20.2",
+ "widest-line": "^3.1.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "dependencies": {
+ "fast-json-stable-stringify": "2.x"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "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==",
+ "dev": true
+ },
+ "node_modules/builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
+ "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==",
+ "dev": true,
+ "dependencies": {
+ "clone-response": "1.0.2",
+ "get-stream": "3.0.0",
+ "http-cache-semantics": "3.8.1",
+ "keyv": "3.0.0",
+ "lowercase-keys": "1.0.0",
+ "normalize-url": "2.0.1",
+ "responselike": "1.0.2"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cachedir": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
+ "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.30001439",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz",
+ "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz",
+ "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
+ "dev": true
+ },
+ "node_modules/clean-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
+ "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/clean-regexp/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
+ "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^5.0.0",
+ "string-width": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/cli-truncate/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==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^1.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==",
+ "dev": true,
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/colorette": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
+ "dev": true
+ },
+ "node_modules/commander": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/commitizen": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.6.tgz",
+ "integrity": "sha512-RyTM+EiD9GO01DJUn9MRRAet3XUHGfoUZoksLfr+1ym1Xt2q5EYJs9Fg2BtKSb5Mo53i0BtMBmWMHQXVlZ/L9w==",
+ "dev": true,
+ "dependencies": {
+ "cachedir": "2.3.0",
+ "cz-conventional-changelog": "3.3.0",
+ "dedent": "0.7.0",
+ "detect-indent": "6.1.0",
+ "find-node-modules": "^2.1.2",
+ "find-root": "1.1.0",
+ "fs-extra": "9.1.0",
+ "glob": "7.2.3",
+ "inquirer": "8.2.4",
+ "is-utf8": "^0.2.1",
+ "lodash": "4.17.21",
+ "minimist": "1.2.6",
+ "strip-bom": "4.0.0",
+ "strip-json-comments": "3.1.1"
+ },
+ "bin": {
+ "commitizen": "bin/commitizen",
+ "cz": "bin/git-cz",
+ "git-cz": "bin/git-cz"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/commitizen/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/commitizen/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/commitizen/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/commitizen/node_modules/minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
+ "dev": true
+ },
+ "node_modules/commitlint": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-17.3.0.tgz",
+ "integrity": "sha512-jKytr2eesn2HpRZrr/37O1AQkDsR4VTIVRoAe4oJF3Eg22jp8gaIMvC0/YDoLzNPQEH5VXNhP/uvco70ritGEA==",
+ "dev": true,
+ "dependencies": {
+ "@commitlint/cli": "^17.3.0",
+ "@commitlint/types": "^17.0.0"
+ },
+ "bin": {
+ "commitlint": "cli.js"
+ },
+ "engines": {
+ "node": ">=v14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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/confusing-browser-globals": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+ "dev": true
+ },
+ "node_modules/conventional-changelog": {
+ "version": "3.1.25",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz",
+ "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-angular": "^5.0.12",
+ "conventional-changelog-atom": "^2.0.8",
+ "conventional-changelog-codemirror": "^2.0.8",
+ "conventional-changelog-conventionalcommits": "^4.5.0",
+ "conventional-changelog-core": "^4.2.1",
+ "conventional-changelog-ember": "^2.0.9",
+ "conventional-changelog-eslint": "^3.0.9",
+ "conventional-changelog-express": "^2.0.6",
+ "conventional-changelog-jquery": "^3.0.11",
+ "conventional-changelog-jshint": "^2.0.9",
+ "conventional-changelog-preset-loader": "^2.3.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-angular": {
+ "version": "5.0.13",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz",
+ "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-atom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz",
+ "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-codemirror": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz",
+ "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-config-spec": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz",
+ "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==",
+ "dev": true
+ },
+ "node_modules/conventional-changelog-conventionalcommits": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz",
+ "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "lodash": "^4.17.15",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-core": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz",
+ "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==",
+ "dev": true,
+ "dependencies": {
+ "add-stream": "^1.0.0",
+ "conventional-changelog-writer": "^5.0.0",
+ "conventional-commits-parser": "^3.2.0",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^4.0.0",
+ "git-raw-commits": "^2.0.8",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^4.1.1",
+ "lodash": "^4.17.15",
+ "normalize-package-data": "^3.0.0",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-ember": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz",
+ "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-eslint": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz",
+ "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-express": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz",
+ "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-jquery": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz",
+ "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-jscs": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz",
+ "integrity": "sha512-V8sey4tE0nJUlWGi2PZKDMfawYLf/+F165xhhDjcIoTEJDxssVV5PMVzTQzjS6U/dEX85fWkur+bs6imOqkIng==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.4.1"
+ }
+ },
+ "node_modules/conventional-changelog-jshint": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz",
+ "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-preset-loader": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz",
+ "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-changelog-writer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz",
+ "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==",
+ "dev": true,
+ "dependencies": {
+ "conventional-commits-filter": "^2.0.7",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-changelog-writer": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-commit-types": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz",
+ "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==",
+ "dev": true
+ },
+ "node_modules/conventional-commits-filter": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz",
+ "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==",
+ "dev": true,
+ "dependencies": {
+ "lodash.ismatch": "^4.4.0",
+ "modify-values": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-commits-parser": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz",
+ "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
+ "dev": true,
+ "dependencies": {
+ "is-text-path": "^1.0.1",
+ "JSONStream": "^1.0.4",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-commits-parser": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-github-releaser": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/conventional-github-releaser/-/conventional-github-releaser-3.1.5.tgz",
+ "integrity": "sha512-VhPKbdN92b2ygnQLkuwHIfUaPAVrVfJVuQdxbmmVPkN927LDP98HthLWFVShh4pxqLK0nE66v78RERGJVeCzbg==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog": "^2.0.0",
+ "dateformat": "^3.0.0",
+ "debug": "^3.1.0",
+ "gh-got": "^7.0.0",
+ "git-semver-tags": "^2.0.0",
+ "lodash.merge": "^4.0.2",
+ "meow": "^7.0.0",
+ "object-assign": "^4.0.1",
+ "q": "^1.4.1",
+ "semver": "^5.0.1",
+ "semver-regex": "^2.0.0",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "conventional-github-releaser": "src/cli.js"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/compare-func": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz",
+ "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==",
+ "dev": true,
+ "dependencies": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^3.0.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-2.0.3.tgz",
+ "integrity": "sha512-4bcII9cJHSKb2qi9e8qGF6aJHLf/AB0dokhyR+X6QILTMl77s4l163vK+reXhajvfOYbbHQvsrWybr5+PKZwNA==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-angular": "^1.6.6",
+ "conventional-changelog-atom": "^2.0.0",
+ "conventional-changelog-codemirror": "^2.0.0",
+ "conventional-changelog-core": "^3.1.0",
+ "conventional-changelog-ember": "^2.0.1",
+ "conventional-changelog-eslint": "^3.0.0",
+ "conventional-changelog-express": "^2.0.0",
+ "conventional-changelog-jquery": "^0.1.0",
+ "conventional-changelog-jscs": "^0.1.0",
+ "conventional-changelog-jshint": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-angular": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz",
+ "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^1.3.1",
+ "q": "^1.5.1"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz",
+ "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==",
+ "dev": true,
+ "dependencies": {
+ "conventional-changelog-writer": "^4.0.6",
+ "conventional-commits-parser": "^3.0.3",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^1.0.0",
+ "git-raw-commits": "2.0.0",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^2.0.3",
+ "lodash": "^4.2.1",
+ "normalize-package-data": "^2.3.5",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core/node_modules/through2": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz",
+ "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "2 || 3"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-jquery": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz",
+ "integrity": "sha512-wbz5vVcvu/SPZTDFB21fF/xo5zFq6NQR42jhtUfOrrP1N/ZjNshhGb3expCGqHYdnUHzPevHeUafsVrdxVD5Og==",
+ "dev": true,
+ "dependencies": {
+ "q": "^1.4.1"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz",
+ "integrity": "sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0",
+ "conventional-commits-filter": "^2.0.7",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.7.6",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-changelog-writer": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "dependencies": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^5.1.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/meow": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
+ "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
+ "dev": true,
+ "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/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "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-github-releaser/node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "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/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "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/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "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/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "3"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==",
+ "dev": true,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz",
+ "integrity": "sha512-xPCyvcEOxCJDxhBfXDNH+zA7mIRGb2aY1gIUJWsZkpJbp1BLHl+/Sycg26Dv+ZbZAJkO61tzbBtqHUi30NGBvg==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "meow": "^3.3.0",
+ "normalize-package-data": "^2.3.0",
+ "parse-github-repo-url": "^1.3.0",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "get-pkg-repo": "cli.js"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+ "dev": true,
+ "dependencies": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==",
+ "dev": true,
+ "dependencies": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
+ "dev": true,
+ "dependencies": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz",
+ "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==",
+ "dev": true,
+ "dependencies": {
+ "dargs": "^4.0.1",
+ "lodash.template": "^4.0.2",
+ "meow": "^4.0.0",
+ "split2": "^2.0.0",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "git-raw-commits": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "dependencies": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz",
+ "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==",
+ "dev": true,
+ "dependencies": {
+ "meow": "^4.0.0",
+ "semver": "^6.0.0"
+ },
+ "bin": {
+ "git-semver-tags": "cli.js"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "dependencies": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/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/conventional-github-releaser/node_modules/git-semver-tags/node_modules/strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/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==",
+ "dev": true
+ },
+ "node_modules/conventional-github-releaser/node_modules/indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==",
+ "dev": true,
+ "dependencies": {
+ "repeating": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/load-json-file/node_modules/parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
+ "dev": true,
+ "dependencies": {
+ "error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/meow": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz",
+ "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==",
+ "dev": true,
+ "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": "^2.5.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.13.1",
+ "yargs-parser": "^18.1.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-github-releaser/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==",
+ "dev": true,
+ "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/conventional-github-releaser/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==",
+ "dev": true,
+ "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/conventional-github-releaser/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-github-releaser/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/meow/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/conventional-github-releaser/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==",
+ "dev": true,
+ "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/conventional-github-releaser/node_modules/path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+ "dev": true,
+ "dependencies": {
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
+ "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/conventional-github-releaser/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==",
+ "dev": true
+ },
+ "node_modules/conventional-github-releaser/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "dev": true,
+ "dependencies": {
+ "through2": "^2.0.2"
+ }
+ },
+ "node_modules/conventional-github-releaser/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/conventional-github-releaser/node_modules/strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+ "dev": true,
+ "dependencies": {
+ "is-utf8": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==",
+ "dev": true,
+ "dependencies": {
+ "get-stdin": "^4.0.1"
+ },
+ "bin": {
+ "strip-indent": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/conventional-github-releaser/node_modules/through2/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/conventional-github-releaser/node_modules/type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-recommended-bump": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz",
+ "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==",
+ "dev": true,
+ "dependencies": {
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.3.4",
+ "conventional-commits-filter": "^2.0.7",
+ "conventional-commits-parser": "^3.2.0",
+ "git-raw-commits": "^2.0.8",
+ "git-semver-tags": "^4.1.1",
+ "meow": "^8.0.0",
+ "q": "^1.5.1"
+ },
+ "bin": {
+ "conventional-recommended-bump": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/core-js": {
+ "version": "3.26.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz",
+ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.26.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz",
+ "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.21.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.26.1",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz",
+ "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cosmiconfig-typescript-loader": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz",
+ "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "cosmiconfig": ">=7",
+ "ts-node": ">=10",
+ "typescript": ">=3"
+ }
+ },
+ "node_modules/cosmiconfig/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
+ "dev": true,
+ "dependencies": {
+ "array-find-index": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cz-conventional-changelog": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz",
+ "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "commitizen": "^4.0.3",
+ "conventional-commit-types": "^3.0.0",
+ "lodash.map": "^4.5.1",
+ "longest": "^2.0.1",
+ "word-wrap": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@commitlint/load": ">6.1.1"
+ }
+ },
+ "node_modules/cz-conventional-changelog/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cz-conventional-changelog/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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cz-conventional-changelog/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/cz-conventional-changelog/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==",
+ "dev": true
+ },
+ "node_modules/cz-conventional-changelog/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/cz-conventional-changelog/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cz-conventional-changelog/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/detect-indent": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz",
+ "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dir-glob/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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotgitignore": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz",
+ "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^3.0.0",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/dotgitignore/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==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dotgitignore/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dotgitignore/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
+ "dev": true
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.284",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "dev": true
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
+ "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.20.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
+ "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "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-weakref": "^1.0.2",
+ "object-inspect": "^1.12.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "unbox-primitive": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "dev": true,
+ "peer": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.30.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz",
+ "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint/eslintrc": "^1.4.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "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.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.4.0",
+ "esquery": "^1.4.0",
+ "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",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "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.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "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-airbnb": {
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
+ "dev": true,
+ "dependencies": {
+ "eslint-config-airbnb-base": "^15.0.0",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5"
+ },
+ "engines": {
+ "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.32.0 || ^8.2.0",
+ "eslint-plugin-import": "^2.25.3",
+ "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-plugin-react": "^7.28.0",
+ "eslint-plugin-react-hooks": "^4.3.0"
+ }
+ },
+ "node_modules/eslint-config-airbnb-base": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
+ "dev": true,
+ "dependencies": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.32.0 || ^8.2.0",
+ "eslint-plugin-import": "^2.25.2"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7",
+ "resolve": "^1.20.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
+ "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-compat": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
+ "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
+ "dev": true,
+ "dependencies": {
+ "@mdn/browser-compat-data": "^4.1.5",
+ "ast-metadata-inferer": "^0.7.0",
+ "browserslist": "^4.16.8",
+ "caniuse-lite": "^1.0.30001304",
+ "core-js": "^3.16.2",
+ "find-up": "^5.0.0",
+ "lodash.memoize": "4.1.2",
+ "semver": "7.3.5"
+ },
+ "engines": {
+ "node": ">=9.x"
+ },
+ "peerDependencies": {
+ "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-compat/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/eslint-plugin-compat/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/eslint-plugin-compat/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/eslint-plugin-compat/node_modules/semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.4",
+ "array.prototype.flat": "^1.2.5",
+ "debug": "^2.6.9",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.7.3",
+ "has": "^1.0.3",
+ "is-core-module": "^2.8.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.5",
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-json": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz",
+ "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==",
+ "dev": true,
+ "dependencies": {
+ "lodash": "^4.17.21",
+ "vscode-json-languageservice": "^4.1.6"
+ },
+ "engines": {
+ "node": ">=12.0"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
+ "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "aria-query": "^4.2.2",
+ "array-includes": "^3.1.5",
+ "ast-types-flow": "^0.0.7",
+ "axe-core": "^4.4.3",
+ "axobject-query": "^2.2.0",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^3.3.2",
+ "language-tags": "^1.0.5",
+ "minimatch": "^3.1.2",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y/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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.31.11",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz",
+ "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "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.3",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "dev": true,
+ "peer": true,
+ "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/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4.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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn": {
+ "version": "45.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz",
+ "integrity": "sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "ci-info": "^3.6.1",
+ "clean-regexp": "^1.0.0",
+ "esquery": "^1.4.0",
+ "indent-string": "^4.0.0",
+ "is-builtin-module": "^3.2.0",
+ "jsesc": "^3.0.2",
+ "lodash": "^4.17.21",
+ "pluralize": "^8.0.0",
+ "read-pkg-up": "^7.0.1",
+ "regexp-tree": "^0.1.24",
+ "regjsparser": "^0.9.1",
+ "safe-regex": "^2.1.1",
+ "semver": "^7.3.8",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.28.0"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn/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==",
+ "dev": true
+ },
+ "node_modules/eslint-plugin-unicorn/node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn/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==",
+ "dev": true,
+ "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/eslint-plugin-unicorn/node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn/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==",
+ "dev": true,
+ "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/eslint-plugin-unicorn/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==",
+ "dev": true,
+ "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/eslint-plugin-unicorn/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-unicorn/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "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/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==",
+ "dev": true
+ },
+ "node_modules/eslint/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "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==",
+ "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/eslint/node_modules/globals": {
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esm": {
+ "version": "3.2.25",
+ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
+ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "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==",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "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/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
+ "dev": true,
+ "dependencies": {
+ "homedir-polyfill": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz",
+ "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/expect-utils": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "jest-matcher-utils": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "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-glob/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==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/figures/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-node-modules": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz",
+ "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==",
+ "dev": true,
+ "dependencies": {
+ "findup-sync": "^4.0.0",
+ "merge": "^2.1.1"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/findup-sync": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
+ "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
+ "dev": true,
+ "dependencies": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "resolve-dir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "node_modules/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "node_modules/from2/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/from2/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==",
+ "dev": true
+ },
+ "node_modules/from2/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/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/get-pkg-repo/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/get-pkg-repo/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==",
+ "dev": true
+ },
+ "node_modules/get-pkg-repo/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/get-pkg-repo/node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gh-got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-7.1.0.tgz",
+ "integrity": "sha512-KeWkkhresa7sbpzQLYzITMgez5rMigUsijhmSAHcLDORIMUbdlkdoZyaN1wQvIjmUZnyb/wkAPaXb4MQKX0mdQ==",
+ "dev": true,
+ "dependencies": {
+ "got": "^8.0.0",
+ "is-plain-obj": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/git-raw-commits": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz",
+ "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==",
+ "dev": true,
+ "dependencies": {
+ "dargs": "^7.0.0",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ },
+ "bin": {
+ "git-raw-commits": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/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==",
+ "dev": true,
+ "dependencies": {
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/git-semver-tags": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz",
+ "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==",
+ "dev": true,
+ "dependencies": {
+ "meow": "^8.0.0",
+ "semver": "^6.0.0"
+ },
+ "bin": {
+ "git-semver-tags": "cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.2"
+ }
+ },
+ "node_modules/glob": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
+ "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/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==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/global-dirs": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.4"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "dependencies": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
+ "dev": true,
+ "dependencies": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/got": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
+ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^0.7.0",
+ "cacheable-request": "^2.1.1",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "into-stream": "^3.1.0",
+ "is-retry-allowed": "^1.1.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "mimic-response": "^1.0.0",
+ "p-cancelable": "^0.4.0",
+ "p-timeout": "^2.0.1",
+ "pify": "^3.0.0",
+ "safe-buffer": "^5.1.1",
+ "timed-out": "^4.0.1",
+ "url-parse-lax": "^3.0.0",
+ "url-to-options": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/got/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/got/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "dev": true
+ },
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.0",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "dev": true,
+ "dependencies": {
+ "has-symbol-support-x": "^1.4.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "dependencies": {
+ "parse-passwd": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/husky": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz",
+ "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==",
+ "dev": true,
+ "bin": {
+ "husky": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "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==",
+ "dev": true
+ },
+ "node_modules/inquirer": {
+ "version": "8.2.4",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz",
+ "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.1",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "0.0.8",
+ "ora": "^5.4.1",
+ "run-async": "^2.4.0",
+ "rxjs": "^7.5.5",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/into-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
+ "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==",
+ "dev": true,
+ "dependencies": {
+ "from2": "^2.1.1",
+ "p-is-promise": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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-builtin-module": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
+ "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "dev": true,
+ "dependencies": {
+ "builtin-modules": "^3.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
+ "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "text-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.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==",
+ "dev": true,
+ "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.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dev": true,
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "dev": true,
+ "dependencies": {
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz",
+ "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.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-changed-files": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz",
+ "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^5.0.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz",
+ "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.3.1",
+ "@jest/expect": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.3.1",
+ "jest-matcher-utils": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-runtime": "^29.3.1",
+ "jest-snapshot": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.3.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz",
+ "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "prompts": "^2.0.1",
+ "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-config": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz",
+ "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "babel-jest": "^29.3.1",
+ "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.3.1",
+ "jest-environment-node": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "jest-regex-util": "^29.2.0",
+ "jest-resolve": "^29.3.1",
+ "jest-runner": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.3.1",
+ "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/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/jest-config/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-config/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz",
+ "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "pretty-format": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz",
+ "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==",
+ "dev": true,
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz",
+ "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.2.0",
+ "jest-util": "^29.3.1",
+ "pretty-format": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz",
+ "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.3.1",
+ "@jest/fake-timers": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "jest-mock": "^29.3.1",
+ "jest-util": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
+ "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz",
+ "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "@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.2.0",
+ "jest-util": "^29.3.1",
+ "jest-worker": "^29.3.1",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz",
+ "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.2.0",
+ "pretty-format": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz",
+ "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "pretty-format": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz",
+ "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.3.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.3.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz",
+ "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "jest-util": "^29.3.1"
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz",
+ "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz",
+ "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.3.1",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^1.1.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz",
+ "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==",
+ "dev": true,
+ "dependencies": {
+ "jest-regex-util": "^29.2.0",
+ "jest-snapshot": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz",
+ "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.3.1",
+ "@jest/environment": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.2.0",
+ "jest-environment-node": "^29.3.1",
+ "jest-haste-map": "^29.3.1",
+ "jest-leak-detector": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-resolve": "^29.3.1",
+ "jest-runtime": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-watcher": "^29.3.1",
+ "jest-worker": "^29.3.1",
+ "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-runtime": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz",
+ "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.3.1",
+ "@jest/fake-timers": "^29.3.1",
+ "@jest/globals": "^29.3.1",
+ "@jest/source-map": "^29.2.0",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@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.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-mock": "^29.3.1",
+ "jest-regex-util": "^29.2.0",
+ "jest-resolve": "^29.3.1",
+ "jest-snapshot": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "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/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz",
+ "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==",
+ "dev": true,
+ "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/traverse": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/babel__traverse": "^7.0.6",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.3.1",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "jest-haste-map": "^29.3.1",
+ "jest-matcher-utils": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.3.1",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz",
+ "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "@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-validate": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz",
+ "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.3.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.2.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.3.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz",
+ "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.3.1",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz",
+ "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.3.1",
+ "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/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
+ "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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/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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz",
+ "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "bin": {
+ "JSONStream": "bin.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
+ "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-includes": "^3.1.5",
+ "object.assign": "^4.1.3"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
+ "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.7.tgz",
+ "integrity": "sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "language-subtag-registry": "^0.3.20"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/lint-staged": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.0.tgz",
+ "integrity": "sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^3.1.0",
+ "colorette": "^2.0.19",
+ "commander": "^9.4.1",
+ "debug": "^4.3.4",
+ "execa": "^6.1.0",
+ "lilconfig": "2.0.6",
+ "listr2": "^5.0.5",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-inspect": "^1.12.2",
+ "pidtree": "^0.6.0",
+ "string-argv": "^0.3.1",
+ "yaml": "^2.1.3"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/node_modules/execa": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
+ "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^3.0.1",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/lint-staged/node_modules/human-signals": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
+ "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/lint-staged/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lint-staged/node_modules/yaml": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.0.tgz",
+ "integrity": "sha512-auf7Gi6QwO7HW//GA9seGvTXVGWl1CM/ADWh1+RxtXr6XOxnT65ovDl9fTi4e0monEyJxCHqDpF6QnFDXmJE4g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/listr2": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.6.tgz",
+ "integrity": "sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.19",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.7",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/listr2/node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/listr2/node_modules/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/load-json-file/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==",
+ "dev": true,
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
+ "dev": true
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+ "dev": true
+ },
+ "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.isfunction": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
+ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
+ "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==",
+ "dev": true
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "dev": true
+ },
+ "node_modules/lodash.kebabcase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
+ "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==",
+ "dev": true
+ },
+ "node_modules/lodash.map": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==",
+ "dev": true
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/lodash.mergewith": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+ "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
+ "dev": true
+ },
+ "node_modules/lodash.snakecase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
+ "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==",
+ "dev": true
+ },
+ "node_modules/lodash.startcase": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz",
+ "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==",
+ "dev": true
+ },
+ "node_modules/lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "dev": true,
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "node_modules/lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dev": true,
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+ "dev": true
+ },
+ "node_modules/lodash.upperfirst": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz",
+ "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/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==",
+ "dev": true,
+ "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/log-update/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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/longest": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz",
+ "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
+ "dev": true,
+ "dependencies": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/meow/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz",
+ "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "mime-db": "1.52.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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
+ "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
+ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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/normalize-package-data/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "dev": true,
+ "dependencies": {
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.6",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "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": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "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==",
+ "dev": true,
+ "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/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
+ "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-is-promise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
+ "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-locate/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==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-timeout": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
+ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
+ "dev": true,
+ "dependencies": {
+ "p-finally": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-github-repo-url": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz",
+ "integrity": "sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-type/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true,
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "dev": true,
+ "dependencies": {
+ "pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
+ "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz",
+ "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.0.0",
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true,
+ "peer": 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/q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dev": true,
+ "dependencies": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
+ "dev": true
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexp-tree": {
+ "version": "0.1.24",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
+ "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
+ "dev": true,
+ "bin": {
+ "regexp-tree": "bin/regexp-tree"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz",
+ "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==",
+ "dev": true,
+ "dependencies": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsgen": "^0.7.1",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz",
+ "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==",
+ "dev": true
+ },
+ "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/repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
+ "dev": true,
+ "dependencies": {
+ "is-finite": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "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/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/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==",
+ "dev": true,
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
+ "dev": true,
+ "dependencies": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-global": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz",
+ "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve.exports": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
+ "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "node_modules/right-pad": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz",
+ "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+ "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safe-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
+ "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
+ "dev": true,
+ "dependencies": {
+ "regexp-tree": "~0.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/schema-utils/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "peer": true,
+ "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/schema-utils/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "peer": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/schema-utils/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==",
+ "dev": true,
+ "peer": true
+ },
+ "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/semver-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
+ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.12",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
+ "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
+ "dev": true
+ },
+ "node_modules/split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/standard-version": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz",
+ "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "conventional-changelog": "3.1.25",
+ "conventional-changelog-config-spec": "2.1.0",
+ "conventional-changelog-conventionalcommits": "4.6.3",
+ "conventional-recommended-bump": "6.1.0",
+ "detect-indent": "^6.0.0",
+ "detect-newline": "^3.1.0",
+ "dotgitignore": "^2.1.0",
+ "figures": "^3.1.0",
+ "find-up": "^5.0.0",
+ "git-semver-tags": "^4.0.0",
+ "semver": "^7.1.1",
+ "stringify-package": "^1.0.1",
+ "yargs": "^16.0.0"
+ },
+ "bin": {
+ "standard-version": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/standard-version/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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/standard-version/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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/standard-version/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==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/standard-version/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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/standard-version/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==",
+ "dev": true
+ },
+ "node_modules/standard-version/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/standard-version/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/standard-version/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/standard-version/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/standard-version/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/standard-version/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/standard-version/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/standard-version/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "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/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.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==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/stringify-package": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz",
+ "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==",
+ "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.16.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
+ "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/terser/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,
+ "peer": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/test-exclude/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==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/test-exclude/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "dev": true,
+ "dependencies": {
+ "readable-stream": "3"
+ }
+ },
+ "node_modules/timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ts-jest": {
+ "version": "29.0.3",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz",
+ "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==",
+ "dev": true,
+ "dependencies": {
+ "bs-logger": "0.x",
+ "fast-json-stable-stringify": "2.x",
+ "jest-util": "^29.0.0",
+ "json5": "^2.2.1",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "semver": "7.x",
+ "yargs-parser": "^21.0.1"
+ },
+ "bin": {
+ "ts-jest": "cli.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0-beta.0 <8",
+ "@jest/types": "^29.0.0",
+ "babel-jest": "^29.0.0",
+ "jest": "^29.0.0",
+ "typescript": ">=4.3"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@jest/types": {
+ "optional": true
+ },
+ "babel-jest": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-jest/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ts-jest/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/ts-loader": {
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz",
+ "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "enhanced-resolve": "^5.0.0",
+ "micromatch": "^4.0.0",
+ "semver": "^7.3.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "typescript": "*",
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/ts-loader/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "dev": true,
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "node_modules/typescript": {
+ "version": "4.9.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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/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/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist-lint": "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-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "dev": true,
+ "dependencies": {
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
+ "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/vscode-json-languageservice": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz",
+ "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==",
+ "dev": true,
+ "dependencies": {
+ "jsonc-parser": "^3.0.0",
+ "vscode-languageserver-textdocument": "^1.0.3",
+ "vscode-languageserver-types": "^3.16.0",
+ "vscode-nls": "^5.0.0",
+ "vscode-uri": "^3.0.3"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz",
+ "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==",
+ "dev": true
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
+ "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==",
+ "dev": true
+ },
+ "node_modules/vscode-nls": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
+ "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==",
+ "dev": true
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz",
+ "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==",
+ "dev": true
+ },
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "5.75.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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/widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "17.6.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
+ "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
+ "dev": true,
+ "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": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz",
+ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz",
+ "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-module-transforms": "^7.20.2",
+ "@babel/helpers": "^7.20.5",
+ "@babel/parser": "^7.20.5",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/eslint-parser": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
+ "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
+ "dev": true,
+ "requires": {
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz",
+ "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.20.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
+ "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+ "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.20.0",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.21.3",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "regexpu-core": "^5.2.1"
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
+ "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "dev": true
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
+ "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
+ "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.18.10",
+ "@babel/types": "^7.19.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
+ "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
+ "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.20.2",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.1",
+ "@babel/types": "^7.20.2"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "dev": true
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
+ "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-wrap-function": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
+ "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/traverse": "^7.19.1",
+ "@babel/types": "^7.19.0"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.20.2"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.20.0"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "dev": true
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz",
+ "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz",
+ "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/parser": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
+ "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
+ "dev": true
+ },
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.18.6",
+ "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.18.6.tgz",
+ "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
+ "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-class-static-block": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
+ "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
+ "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
+ "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
+ "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
+ "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz",
+ "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.20.1"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz",
+ "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
+ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
+ "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
+ "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-remap-async-to-generator": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
+ "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz",
+ "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz",
+ "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
+ "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz",
+ "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
+ "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
+ "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
+ "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.18.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
+ "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
+ "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
+ "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.19.6",
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz",
+ "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.19.6",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-simple-access": "^7.19.4"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
+ "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-module-transforms": "^7.19.6",
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-validator-identifier": "^7.19.1"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
+ "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz",
+ "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
+ "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-object-assign": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz",
+ "integrity": "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
+ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz",
+ "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
+ "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz",
+ "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "regenerator-transform": "^0.15.1"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
+ "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
+ "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
+ "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
+ "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
+ "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
+ "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
+ "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-proposal-class-static-block": "^7.18.6",
+ "@babel/plugin-proposal-dynamic-import": "^7.18.6",
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
+ "@babel/plugin-proposal-json-strings": "^7.18.6",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "@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.20.0",
+ "@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-transform-arrow-functions": "^7.18.6",
+ "@babel/plugin-transform-async-to-generator": "^7.18.6",
+ "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
+ "@babel/plugin-transform-block-scoping": "^7.20.2",
+ "@babel/plugin-transform-classes": "^7.20.2",
+ "@babel/plugin-transform-computed-properties": "^7.18.9",
+ "@babel/plugin-transform-destructuring": "^7.20.2",
+ "@babel/plugin-transform-dotall-regex": "^7.18.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.18.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
+ "@babel/plugin-transform-for-of": "^7.18.8",
+ "@babel/plugin-transform-function-name": "^7.18.9",
+ "@babel/plugin-transform-literals": "^7.18.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.18.6",
+ "@babel/plugin-transform-modules-amd": "^7.19.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.19.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.19.6",
+ "@babel/plugin-transform-modules-umd": "^7.18.6",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
+ "@babel/plugin-transform-new-target": "^7.18.6",
+ "@babel/plugin-transform-object-super": "^7.18.6",
+ "@babel/plugin-transform-parameters": "^7.20.1",
+ "@babel/plugin-transform-property-literals": "^7.18.6",
+ "@babel/plugin-transform-regenerator": "^7.18.6",
+ "@babel/plugin-transform-reserved-words": "^7.18.6",
+ "@babel/plugin-transform-shorthand-properties": "^7.18.6",
+ "@babel/plugin-transform-spread": "^7.19.0",
+ "@babel/plugin-transform-sticky-regex": "^7.18.6",
+ "@babel/plugin-transform-template-literals": "^7.18.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.18.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.18.10",
+ "@babel/plugin-transform-unicode-regex": "^7.18.6",
+ "@babel/preset-modules": "^0.1.5",
+ "@babel/types": "^7.20.2",
+ "babel-plugin-polyfill-corejs2": "^0.3.3",
+ "babel-plugin-polyfill-corejs3": "^0.6.0",
+ "babel-plugin-polyfill-regenerator": "^0.4.1",
+ "core-js-compat": "^3.25.1",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz",
+ "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.11"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.20.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz",
+ "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "core-js-pure": "^3.25.1",
+ "regenerator-runtime": "^0.13.11"
+ }
+ },
+ "@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz",
+ "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.20.5",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.20.5",
+ "@babel/types": "^7.20.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz",
+ "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "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==",
+ "dev": true
+ },
+ "@commitlint/cli": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.3.0.tgz",
+ "integrity": "sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==",
+ "dev": true,
+ "requires": {
+ "@commitlint/format": "^17.0.0",
+ "@commitlint/lint": "^17.3.0",
+ "@commitlint/load": "^17.3.0",
+ "@commitlint/read": "^17.2.0",
+ "@commitlint/types": "^17.0.0",
+ "execa": "^5.0.0",
+ "lodash.isfunction": "^3.0.9",
+ "resolve-from": "5.0.0",
+ "resolve-global": "1.0.0",
+ "yargs": "^17.0.0"
+ }
+ },
+ "@commitlint/config-conventional": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.3.0.tgz",
+ "integrity": "sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-conventionalcommits": "^5.0.0"
+ },
+ "dependencies": {
+ "conventional-changelog-conventionalcommits": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz",
+ "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "lodash": "^4.17.15",
+ "q": "^1.5.1"
+ }
+ }
+ }
+ },
+ "@commitlint/config-validator": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.1.0.tgz",
+ "integrity": "sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==",
+ "dev": true,
+ "requires": {
+ "@commitlint/types": "^17.0.0",
+ "ajv": "^8.11.0"
+ }
+ },
+ "@commitlint/ensure": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.3.0.tgz",
+ "integrity": "sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg==",
+ "dev": true,
+ "requires": {
+ "@commitlint/types": "^17.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "lodash.kebabcase": "^4.1.1",
+ "lodash.snakecase": "^4.1.1",
+ "lodash.startcase": "^4.4.0",
+ "lodash.upperfirst": "^4.3.1"
+ }
+ },
+ "@commitlint/execute-rule": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz",
+ "integrity": "sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==",
+ "dev": true
+ },
+ "@commitlint/format": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.0.0.tgz",
+ "integrity": "sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==",
+ "dev": true,
+ "requires": {
+ "@commitlint/types": "^17.0.0",
+ "chalk": "^4.1.0"
+ }
+ },
+ "@commitlint/is-ignored": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.2.0.tgz",
+ "integrity": "sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg==",
+ "dev": true,
+ "requires": {
+ "@commitlint/types": "^17.0.0",
+ "semver": "7.3.7"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@commitlint/lint": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.3.0.tgz",
+ "integrity": "sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw==",
+ "dev": true,
+ "requires": {
+ "@commitlint/is-ignored": "^17.2.0",
+ "@commitlint/parse": "^17.2.0",
+ "@commitlint/rules": "^17.3.0",
+ "@commitlint/types": "^17.0.0"
+ }
+ },
+ "@commitlint/load": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.3.0.tgz",
+ "integrity": "sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==",
+ "dev": true,
+ "requires": {
+ "@commitlint/config-validator": "^17.1.0",
+ "@commitlint/execute-rule": "^17.0.0",
+ "@commitlint/resolve-extends": "^17.3.0",
+ "@commitlint/types": "^17.0.0",
+ "@types/node": "^14.0.0",
+ "chalk": "^4.1.0",
+ "cosmiconfig": "^7.0.0",
+ "cosmiconfig-typescript-loader": "^4.0.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.merge": "^4.6.2",
+ "lodash.uniq": "^4.5.0",
+ "resolve-from": "^5.0.0",
+ "ts-node": "^10.8.1",
+ "typescript": "^4.6.4"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "14.18.35",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.35.tgz",
+ "integrity": "sha512-2ATO8pfhG1kDvw4Lc4C0GXIMSQFFJBCo/R1fSgTwmUlq5oy95LXyjDQinsRVgQY6gp6ghh3H91wk9ES5/5C+Tw==",
+ "dev": true
+ }
+ }
+ },
+ "@commitlint/message": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.2.0.tgz",
+ "integrity": "sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q==",
+ "dev": true
+ },
+ "@commitlint/parse": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.2.0.tgz",
+ "integrity": "sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q==",
+ "dev": true,
+ "requires": {
+ "@commitlint/types": "^17.0.0",
+ "conventional-changelog-angular": "^5.0.11",
+ "conventional-commits-parser": "^3.2.2"
+ }
+ },
+ "@commitlint/read": {
+ "version": "17.2.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.2.0.tgz",
+ "integrity": "sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ==",
+ "dev": true,
+ "requires": {
+ "@commitlint/top-level": "^17.0.0",
+ "@commitlint/types": "^17.0.0",
+ "fs-extra": "^10.0.0",
+ "git-raw-commits": "^2.0.0",
+ "minimist": "^1.2.6"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@commitlint/resolve-extends": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.3.0.tgz",
+ "integrity": "sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==",
+ "dev": true,
+ "requires": {
+ "@commitlint/config-validator": "^17.1.0",
+ "@commitlint/types": "^17.0.0",
+ "import-fresh": "^3.0.0",
+ "lodash.mergewith": "^4.6.2",
+ "resolve-from": "^5.0.0",
+ "resolve-global": "^1.0.0"
+ }
+ },
+ "@commitlint/rules": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.3.0.tgz",
+ "integrity": "sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g==",
+ "dev": true,
+ "requires": {
+ "@commitlint/ensure": "^17.3.0",
+ "@commitlint/message": "^17.2.0",
+ "@commitlint/to-lines": "^17.0.0",
+ "@commitlint/types": "^17.0.0",
+ "execa": "^5.0.0"
+ }
+ },
+ "@commitlint/to-lines": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.0.0.tgz",
+ "integrity": "sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==",
+ "dev": true
+ },
+ "@commitlint/top-level": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.0.0.tgz",
+ "integrity": "sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^5.0.0"
+ },
+ "dependencies": {
+ "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-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"
+ }
+ }
+ }
+ },
+ "@commitlint/types": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.0.0.tgz",
+ "integrity": "sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0"
+ }
+ },
+ "@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "dependencies": {
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ }
+ }
+ },
+ "@digitalroute/cz-conventional-changelog-for-jira": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@digitalroute/cz-conventional-changelog-for-jira/-/cz-conventional-changelog-for-jira-8.0.0.tgz",
+ "integrity": "sha512-oK2UE9QhKl/8Tn1d9r184XQRwsCxkFu5zh572LT1pBYEyK1G5IY1mDj5wgP6Wm/EesGCgJ09loW9dFdNeaB3yA==",
+ "dev": true,
+ "requires": {
+ "@commitlint/load": ">6.1.1",
+ "boxen": "^5.1.2",
+ "chalk": "^2.4.1",
+ "commitizen": "^4.2.6",
+ "cz-conventional-changelog": "^3.3.0",
+ "inquirer": "^8.2.4",
+ "lodash.map": "^4.5.1",
+ "longest": "^2.0.1",
+ "right-pad": "^1.0.1",
+ "word-wrap": "^1.0.3"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@eslint-community/eslint-utils": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.1.2.tgz",
+ "integrity": "sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz",
+ "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.4.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": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "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"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "@jest/console": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz",
+ "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/core": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz",
+ "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.3.1",
+ "@jest/reporters": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@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.2.0",
+ "jest-config": "^29.3.1",
+ "jest-haste-map": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-regex-util": "^29.2.0",
+ "jest-resolve": "^29.3.1",
+ "jest-resolve-dependencies": "^29.3.1",
+ "jest-runner": "^29.3.1",
+ "jest-runtime": "^29.3.1",
+ "jest-snapshot": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "jest-watcher": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.3.1",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "@jest/create-cache-key-function": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz",
+ "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.4",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
+ "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ }
+ }
+ },
+ "@jest/environment": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz",
+ "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "jest-mock": "^29.3.1"
+ }
+ },
+ "@jest/expect": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz",
+ "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==",
+ "dev": true,
+ "requires": {
+ "expect": "^29.3.1",
+ "jest-snapshot": "^29.3.1"
+ }
+ },
+ "@jest/expect-utils": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz",
+ "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==",
+ "dev": true,
+ "requires": {
+ "jest-get-type": "^29.2.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz",
+ "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "@sinonjs/fake-timers": "^9.1.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.3.1",
+ "jest-mock": "^29.3.1",
+ "jest-util": "^29.3.1"
+ }
+ },
+ "@jest/globals": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz",
+ "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.3.1",
+ "@jest/expect": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "jest-mock": "^29.3.1"
+ }
+ },
+ "@jest/reporters": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz",
+ "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==",
+ "dev": true,
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "@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": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-worker": "^29.3.1",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "@jest/schemas": {
+ "version": "29.0.0",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz",
+ "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==",
+ "dev": true,
+ "requires": {
+ "@sinclair/typebox": "^0.24.1"
+ }
+ },
+ "@jest/source-map": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz",
+ "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "@jest/test-result": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz",
+ "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz",
+ "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^29.3.1",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.3.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz",
+ "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.3.1",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "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.3.1",
+ "jest-regex-util": "^29.2.0",
+ "jest-util": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.1"
+ }
+ },
+ "@jest/types": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz",
+ "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.0.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "@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==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@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==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "@mdn/browser-compat-data": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
+ "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
+ "dev": true
+ },
+ "@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "dev": true,
+ "requires": {
+ "eslint-scope": "5.1.1"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@sinclair/typebox": {
+ "version": "0.24.51",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
+ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==",
+ "dev": true
+ },
+ "@sindresorhus/is": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
+ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==",
+ "dev": true
+ },
+ "@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "@swc/core": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.24.tgz",
+ "integrity": "sha512-QMOTd0AgiUT3K1crxLRqd3gw0f3FC8hhH1vvlIlryvYqU4c+FJ/T2G4ZhMKLxQlZ/jX6Rhk0gKINZRBxy2GFyQ==",
+ "dev": true,
+ "requires": {
+ "@swc/core-darwin-arm64": "1.3.24",
+ "@swc/core-darwin-x64": "1.3.24",
+ "@swc/core-linux-arm-gnueabihf": "1.3.24",
+ "@swc/core-linux-arm64-gnu": "1.3.24",
+ "@swc/core-linux-arm64-musl": "1.3.24",
+ "@swc/core-linux-x64-gnu": "1.3.24",
+ "@swc/core-linux-x64-musl": "1.3.24",
+ "@swc/core-win32-arm64-msvc": "1.3.24",
+ "@swc/core-win32-ia32-msvc": "1.3.24",
+ "@swc/core-win32-x64-msvc": "1.3.24"
+ }
+ },
+ "@swc/core-darwin-arm64": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.24.tgz",
+ "integrity": "sha512-rR+9UpWm+fGXcipsjCst2hIL1GYIbo0YTLhJZWdIpQD6KRHHJMFXiydMgQQkDj2Ml7HpqUVgxj6m4ZWYL8b0OA==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-darwin-x64": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.24.tgz",
+ "integrity": "sha512-px+5vkGtgPH0m3FkkTBHynlRdS5rRz+lK+wiXIuBZFJSySWFl6RkKbvwkD+sf0MpazQlqwlv/rTOGJBw6oDffg==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-linux-arm-gnueabihf": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.24.tgz",
+ "integrity": "sha512-jLs8ZOdTV4UW4J12E143QJ4mOMONQtqgAnuhBbRuWFzQ3ny1dfoC3P1jNWAJ2Xi59XdxAIXn0PggPNH4Kh34kw==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-linux-arm64-gnu": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.24.tgz",
+ "integrity": "sha512-A/v0h70BekrwGpp1DlzIFGcHQ3QQ2PexXcnnuIBZeMc9gNmHlcZmg3EcwAnaUDiokhNuSUFA/wV94yk1OqmSkw==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-linux-arm64-musl": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.24.tgz",
+ "integrity": "sha512-pbc9eArWPTiMrbpS/pJo0IiQNAKAQBcBIDjWBGP1tcw2iDXYLw4bruwz9kI/VjakbshWb8MoE4T5ClkeuULvSw==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-linux-x64-gnu": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.24.tgz",
+ "integrity": "sha512-pP5pOLlY1xd352qo7rTlpVPUI9/9VhOd4b3Lk+LzfZDq9bTL2NDlGfyrPiwa5DGHMSzrugH56K2J68eutkxYVA==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-linux-x64-musl": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.24.tgz",
+ "integrity": "sha512-phNbP7zGp+Wcyxq1Qxlpe5KkxO7WLT2kVQUC7aDFGlVdCr+xdXsfH1MzheHtnr0kqTVQX1aiM8XXXHfFxR0oNA==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-win32-arm64-msvc": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.24.tgz",
+ "integrity": "sha512-qhbiJTWAOqyR+K9xnGmCkOWSz2EmWpDBstEJCEOTc6FZiEdbiTscDmqTcMbCKaTHGu8t+6erVA4t65/Eg6uWPA==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-win32-ia32-msvc": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.24.tgz",
+ "integrity": "sha512-JfghIlscE4Rz+Lc08lSoDh+R0cWxrISed5biogFfE6vZqhaDnw3E5Qshqw7O3pIaiq8L2u1nmzuyP581ZmpbRA==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/core-win32-x64-msvc": {
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.24.tgz",
+ "integrity": "sha512-3AmJRr0hwciwDBbzUNqaftvppzS8v9X/iv/Wl7YaVLBVpPfQvaZzfqLycvNMGLZb5vIKXR/u58txg3dRBGsJtw==",
+ "dev": true,
+ "optional": true
+ },
+ "@swc/jest": {
+ "version": "0.2.24",
+ "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.24.tgz",
+ "integrity": "sha512-fwgxQbM1wXzyKzl1+IW0aGrRvAA8k0Y3NxFhKigbPjOJ4mCKnWEcNX9HQS3gshflcxq8YKhadabGUVfdwjCr6Q==",
+ "dev": true,
+ "requires": {
+ "@jest/create-cache-key-function": "^27.4.2",
+ "jsonc-parser": "^3.2.0"
+ }
+ },
+ "@tsconfig/node10": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "dev": true
+ },
+ "@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true
+ },
+ "@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true
+ },
+ "@tsconfig/node16": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
+ "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
+ "dev": true
+ },
+ "@types/babel__core": {
+ "version": "7.1.20",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz",
+ "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "@types/babel__generator": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
+ "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__template": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
+ "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz",
+ "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "@types/body-parser": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/connect": {
+ "version": "3.4.35",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
+ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/eslint": {
+ "version": "8.4.10",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz",
+ "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
+ "dev": true,
+ "peer": true
+ },
+ "@types/express": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz",
+ "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==",
+ "dev": true,
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.31",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.31",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
+ "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "@types/glob": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz",
+ "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/graceful-fs": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
+ "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/jest": {
+ "version": "29.2.4",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz",
+ "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==",
+ "dev": true,
+ "requires": {
+ "expect": "^29.0.0",
+ "pretty-format": "^29.0.0"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "@types/mime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
+ "dev": true
+ },
+ "@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true
+ },
+ "@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "18.11.17",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
+ "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "@types/prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==",
+ "dev": true
+ },
+ "@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/range-parser": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
+ "dev": true
+ },
+ "@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "@types/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
+ "dev": true,
+ "requires": {
+ "@types/mime": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
+ "dev": true
+ },
+ "@types/yargs": {
+ "version": "17.0.17",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz",
+ "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz",
+ "integrity": "sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.47.0",
+ "@typescript-eslint/type-utils": "5.47.0",
+ "@typescript-eslint/utils": "5.47.0",
+ "debug": "^4.3.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "regexpp": "^3.2.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.0.tgz",
+ "integrity": "sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.47.0",
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/typescript-estree": "5.47.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz",
+ "integrity": "sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/visitor-keys": "5.47.0"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz",
+ "integrity": "sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.47.0",
+ "@typescript-eslint/utils": "5.47.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.0.tgz",
+ "integrity": "sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz",
+ "integrity": "sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/visitor-keys": "5.47.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.0.tgz",
+ "integrity": "sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.47.0",
+ "@typescript-eslint/types": "5.47.0",
+ "@typescript-eslint/typescript-estree": "5.47.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^3.0.0",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.47.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz",
+ "integrity": "sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.47.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "peer": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "peer": true
+ },
+ "acorn": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "dev": true
+ },
+ "acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz",
+ "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "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==",
+ "dev": true
+ },
+ "array.prototype.flat": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.tosorted": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true
+ },
+ "ast-metadata-inferer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
+ "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "dev": true,
+ "requires": {
+ "@mdn/browser-compat-data": "^3.3.14"
+ },
+ "dependencies": {
+ "@mdn/browser-compat-data": {
+ "version": "3.3.14",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
+ "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true
+ },
+ "axe-core": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz",
+ "integrity": "sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==",
+ "dev": true,
+ "peer": true
+ },
+ "axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "dev": true,
+ "peer": true
+ },
+ "babel-jest": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz",
+ "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^29.3.1",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.2.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz",
+ "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==",
+ "dev": true,
+ "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.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
+ "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "semver": "^6.1.1"
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz",
+ "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "core-js-compat": "^3.25.1"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
+ "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz",
+ "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "^29.2.0",
+ "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==",
+ "dev": true
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "boxen": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.0",
+ "cli-boxes": "^2.2.1",
+ "string-width": "^4.2.2",
+ "type-fest": "^0.20.2",
+ "widest-line": "^3.1.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.21.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
+ }
+ },
+ "bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "requires": {
+ "fast-json-stable-stringify": "2.x"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
+ "dev": true
+ },
+ "cacheable-request": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
+ "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==",
+ "dev": true,
+ "requires": {
+ "clone-response": "1.0.2",
+ "get-stream": "3.0.0",
+ "http-cache-semantics": "3.8.1",
+ "keyv": "3.0.0",
+ "lowercase-keys": "1.0.0",
+ "normalize-url": "2.0.1",
+ "responselike": "1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "dev": true
+ },
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==",
+ "dev": true
+ }
+ }
+ },
+ "cachedir": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
+ "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==",
+ "dev": true
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001439",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz",
+ "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.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==",
+ "dev": true
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true,
+ "peer": true
+ },
+ "ci-info": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz",
+ "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==",
+ "dev": true
+ },
+ "cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
+ "dev": true
+ },
+ "clean-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
+ "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ }
+ }
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true
+ },
+ "cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
+ "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==",
+ "dev": true
+ },
+ "cli-truncate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^5.0.0",
+ "string-width": "^5.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==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true
+ },
+ "collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "colorette": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
+ "dev": true
+ },
+ "commander": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
+ "dev": true
+ },
+ "commitizen": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.6.tgz",
+ "integrity": "sha512-RyTM+EiD9GO01DJUn9MRRAet3XUHGfoUZoksLfr+1ym1Xt2q5EYJs9Fg2BtKSb5Mo53i0BtMBmWMHQXVlZ/L9w==",
+ "dev": true,
+ "requires": {
+ "cachedir": "2.3.0",
+ "cz-conventional-changelog": "3.3.0",
+ "dedent": "0.7.0",
+ "detect-indent": "6.1.0",
+ "find-node-modules": "^2.1.2",
+ "find-root": "1.1.0",
+ "fs-extra": "9.1.0",
+ "glob": "7.2.3",
+ "inquirer": "8.2.4",
+ "is-utf8": "^0.2.1",
+ "lodash": "4.17.21",
+ "minimist": "1.2.6",
+ "strip-bom": "4.0.0",
+ "strip-json-comments": "3.1.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
+ "dev": true
+ }
+ }
+ },
+ "commitlint": {
+ "version": "17.3.0",
+ "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-17.3.0.tgz",
+ "integrity": "sha512-jKytr2eesn2HpRZrr/37O1AQkDsR4VTIVRoAe4oJF3Eg22jp8gaIMvC0/YDoLzNPQEH5VXNhP/uvco70ritGEA==",
+ "dev": true,
+ "requires": {
+ "@commitlint/cli": "^17.3.0",
+ "@commitlint/types": "^17.0.0"
+ }
+ },
+ "compare-func": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
+ "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
+ "dev": true,
+ "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": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "confusing-browser-globals": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+ "dev": true
+ },
+ "conventional-changelog": {
+ "version": "3.1.25",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz",
+ "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-angular": "^5.0.12",
+ "conventional-changelog-atom": "^2.0.8",
+ "conventional-changelog-codemirror": "^2.0.8",
+ "conventional-changelog-conventionalcommits": "^4.5.0",
+ "conventional-changelog-core": "^4.2.1",
+ "conventional-changelog-ember": "^2.0.9",
+ "conventional-changelog-eslint": "^3.0.9",
+ "conventional-changelog-express": "^2.0.6",
+ "conventional-changelog-jquery": "^3.0.11",
+ "conventional-changelog-jshint": "^2.0.9",
+ "conventional-changelog-preset-loader": "^2.3.4"
+ }
+ },
+ "conventional-changelog-angular": {
+ "version": "5.0.13",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz",
+ "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-atom": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz",
+ "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-codemirror": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz",
+ "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-config-spec": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz",
+ "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==",
+ "dev": true
+ },
+ "conventional-changelog-conventionalcommits": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz",
+ "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "lodash": "^4.17.15",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-core": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz",
+ "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==",
+ "dev": true,
+ "requires": {
+ "add-stream": "^1.0.0",
+ "conventional-changelog-writer": "^5.0.0",
+ "conventional-commits-parser": "^3.2.0",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^4.0.0",
+ "git-raw-commits": "^2.0.8",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^4.1.1",
+ "lodash": "^4.17.15",
+ "normalize-package-data": "^3.0.0",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^4.0.0"
+ }
+ },
+ "conventional-changelog-ember": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz",
+ "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-eslint": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz",
+ "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-express": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz",
+ "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-jquery": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz",
+ "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==",
+ "dev": true,
+ "requires": {
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-jscs": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz",
+ "integrity": "sha512-V8sey4tE0nJUlWGi2PZKDMfawYLf/+F165xhhDjcIoTEJDxssVV5PMVzTQzjS6U/dEX85fWkur+bs6imOqkIng==",
+ "dev": true,
+ "requires": {
+ "q": "^1.4.1"
+ }
+ },
+ "conventional-changelog-jshint": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz",
+ "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-preset-loader": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz",
+ "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==",
+ "dev": true
+ },
+ "conventional-changelog-writer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz",
+ "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==",
+ "dev": true,
+ "requires": {
+ "conventional-commits-filter": "^2.0.7",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^4.0.0"
+ }
+ },
+ "conventional-commit-types": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz",
+ "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==",
+ "dev": true
+ },
+ "conventional-commits-filter": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz",
+ "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==",
+ "dev": true,
+ "requires": {
+ "lodash.ismatch": "^4.4.0",
+ "modify-values": "^1.0.0"
+ }
+ },
+ "conventional-commits-parser": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz",
+ "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
+ "dev": true,
+ "requires": {
+ "is-text-path": "^1.0.1",
+ "JSONStream": "^1.0.4",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ }
+ },
+ "conventional-github-releaser": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/conventional-github-releaser/-/conventional-github-releaser-3.1.5.tgz",
+ "integrity": "sha512-VhPKbdN92b2ygnQLkuwHIfUaPAVrVfJVuQdxbmmVPkN927LDP98HthLWFVShh4pxqLK0nE66v78RERGJVeCzbg==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog": "^2.0.0",
+ "dateformat": "^3.0.0",
+ "debug": "^3.1.0",
+ "gh-got": "^7.0.0",
+ "git-semver-tags": "^2.0.0",
+ "lodash.merge": "^4.0.2",
+ "meow": "^7.0.0",
+ "object-assign": "^4.0.1",
+ "q": "^1.4.1",
+ "semver": "^5.0.1",
+ "semver-regex": "^2.0.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "compare-func": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz",
+ "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==",
+ "dev": true,
+ "requires": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^3.0.0"
+ }
+ },
+ "conventional-changelog": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-2.0.3.tgz",
+ "integrity": "sha512-4bcII9cJHSKb2qi9e8qGF6aJHLf/AB0dokhyR+X6QILTMl77s4l163vK+reXhajvfOYbbHQvsrWybr5+PKZwNA==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-angular": "^1.6.6",
+ "conventional-changelog-atom": "^2.0.0",
+ "conventional-changelog-codemirror": "^2.0.0",
+ "conventional-changelog-core": "^3.1.0",
+ "conventional-changelog-ember": "^2.0.1",
+ "conventional-changelog-eslint": "^3.0.0",
+ "conventional-changelog-express": "^2.0.0",
+ "conventional-changelog-jquery": "^0.1.0",
+ "conventional-changelog-jscs": "^0.1.0",
+ "conventional-changelog-jshint": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.0.1"
+ }
+ },
+ "conventional-changelog-angular": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz",
+ "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^1.3.1",
+ "q": "^1.5.1"
+ }
+ },
+ "conventional-changelog-core": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz",
+ "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==",
+ "dev": true,
+ "requires": {
+ "conventional-changelog-writer": "^4.0.6",
+ "conventional-commits-parser": "^3.0.3",
+ "dateformat": "^3.0.0",
+ "get-pkg-repo": "^1.0.0",
+ "git-raw-commits": "2.0.0",
+ "git-remote-origin-url": "^2.0.0",
+ "git-semver-tags": "^2.0.3",
+ "lodash": "^4.2.1",
+ "normalize-package-data": "^2.3.5",
+ "q": "^1.5.1",
+ "read-pkg": "^3.0.0",
+ "read-pkg-up": "^3.0.0",
+ "through2": "^3.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz",
+ "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "2 || 3"
+ }
+ }
+ }
+ },
+ "conventional-changelog-jquery": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz",
+ "integrity": "sha512-wbz5vVcvu/SPZTDFB21fF/xo5zFq6NQR42jhtUfOrrP1N/ZjNshhGb3expCGqHYdnUHzPevHeUafsVrdxVD5Og==",
+ "dev": true,
+ "requires": {
+ "q": "^1.4.1"
+ }
+ },
+ "conventional-changelog-writer": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz",
+ "integrity": "sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==",
+ "dev": true,
+ "requires": {
+ "compare-func": "^2.0.0",
+ "conventional-commits-filter": "^2.0.7",
+ "dateformat": "^3.0.0",
+ "handlebars": "^4.7.6",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "semver": "^6.0.0",
+ "split": "^1.0.0",
+ "through2": "^4.0.0"
+ },
+ "dependencies": {
+ "compare-func": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz",
+ "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
+ "dev": true,
+ "requires": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^5.1.0"
+ }
+ },
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^2.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==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.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==",
+ "dev": true
+ },
+ "meow": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
+ "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
+ "dev": true,
+ "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"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "3"
+ }
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha512-k4ELWeEU3uCcwub7+dWydqQBRjAjkV9L33HjVRG5Xo2QybI6ja/v+4W73SRi8ubCqJz0l9XsTP1NbewfyqaSlw==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "get-pkg-repo": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz",
+ "integrity": "sha512-xPCyvcEOxCJDxhBfXDNH+zA7mIRGb2aY1gIUJWsZkpJbp1BLHl+/Sycg26Dv+ZbZAJkO61tzbBtqHUi30NGBvg==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "meow": "^3.3.0",
+ "normalize-package-data": "^2.3.0",
+ "parse-github-repo-url": "^1.3.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==",
+ "dev": true
+ }
+ }
+ },
+ "git-raw-commits": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz",
+ "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==",
+ "dev": true,
+ "requires": {
+ "dargs": "^4.0.1",
+ "lodash.template": "^4.0.2",
+ "meow": "^4.0.0",
+ "split2": "^2.0.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==",
+ "dev": true
+ },
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ }
+ },
+ "minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ }
+ },
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==",
+ "dev": true
+ }
+ }
+ },
+ "git-semver-tags": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz",
+ "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==",
+ "dev": true,
+ "requires": {
+ "meow": "^4.0.0",
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==",
+ "dev": true
+ },
+ "meow": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
+ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist": "^1.1.3",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0"
+ }
+ },
+ "minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ }
+ },
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ }
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "dev": true
+ },
+ "meow": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz",
+ "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==",
+ "dev": true,
+ "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": "^2.5.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.13.1",
+ "yargs-parser": "^18.1.3"
+ },
+ "dependencies": {
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "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": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.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==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
+ "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "split2": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
+ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
+ "dev": true,
+ "requires": {
+ "through2": "^2.0.2"
+ }
+ },
+ "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"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
+ "type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "dev": true
+ }
+ }
+ },
+ "conventional-recommended-bump": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz",
+ "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^2.3.4",
+ "conventional-commits-filter": "^2.0.7",
+ "conventional-commits-parser": "^3.2.0",
+ "git-raw-commits": "^2.0.8",
+ "git-semver-tags": "^4.1.1",
+ "meow": "^8.0.0",
+ "q": "^1.5.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "core-js": {
+ "version": "3.26.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz",
+ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==",
+ "dev": true
+ },
+ "core-js-compat": {
+ "version": "3.26.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz",
+ "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.21.4"
+ }
+ },
+ "core-js-pure": {
+ "version": "3.26.1",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz",
+ "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==",
+ "dev": true,
+ "peer": true
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
+ "cosmiconfig-typescript-loader": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz",
+ "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==",
+ "dev": true,
+ "requires": {}
+ },
+ "create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "cz-conventional-changelog": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz",
+ "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==",
+ "dev": true,
+ "requires": {
+ "@commitlint/load": ">6.1.1",
+ "chalk": "^2.4.1",
+ "commitizen": "^4.0.3",
+ "conventional-commit-types": "^3.0.0",
+ "lodash.map": "^4.5.1",
+ "longest": "^2.0.1",
+ "word-wrap": "^1.0.3"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "dargs": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
+ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==",
+ "dev": true
+ },
+ "dateformat": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
+ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "dev": true
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true
+ },
+ "defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true
+ },
+ "diff-sequences": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz",
+ "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==",
+ "dev": true
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "dotgitignore": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz",
+ "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true
+ }
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
+ "dev": true
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.4.284",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "dev": true
+ },
+ "emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "enhanced-resolve": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
+ "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.20.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
+ "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "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-weakref": "^1.0.2",
+ "object-inspect": "^1.12.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "unbox-primitive": "^1.0.2"
+ }
+ },
+ "es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "dev": true,
+ "peer": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "8.30.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz",
+ "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==",
+ "dev": true,
+ "requires": {
+ "@eslint/eslintrc": "^1.4.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "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.1.1",
+ "eslint-utils": "^3.0.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.4.0",
+ "esquery": "^1.4.0",
+ "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",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "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.1",
+ "regexpp": "^3.2.0",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "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"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "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==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "globals": {
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-airbnb": {
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
+ "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "^15.0.0",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5"
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+ "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
+ "dev": true,
+ "requires": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5",
+ "semver": "^6.3.0"
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "resolve": "^1.20.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
+ "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-plugin-compat": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
+ "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
+ "dev": true,
+ "requires": {
+ "@mdn/browser-compat-data": "^4.1.5",
+ "ast-metadata-inferer": "^0.7.0",
+ "browserslist": "^4.16.8",
+ "caniuse-lite": "^1.0.30001304",
+ "core-js": "^3.16.2",
+ "find-up": "^5.0.0",
+ "lodash.memoize": "4.1.2",
+ "semver": "7.3.5"
+ },
+ "dependencies": {
+ "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-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"
+ }
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.4",
+ "array.prototype.flat": "^1.2.5",
+ "debug": "^2.6.9",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.7.3",
+ "has": "^1.0.3",
+ "is-core-module": "^2.8.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.5",
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "tsconfig-paths": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-json": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz",
+ "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.21",
+ "vscode-json-languageservice": "^4.1.6"
+ }
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
+ "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "aria-query": "^4.2.2",
+ "array-includes": "^3.1.5",
+ "ast-types-flow": "^0.0.7",
+ "axe-core": "^4.4.3",
+ "axobject-query": "^2.2.0",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^3.3.2",
+ "language-tags": "^1.0.5",
+ "minimatch": "^3.1.2",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "peer": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.31.11",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz",
+ "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "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.3",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "peer": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "resolve": {
+ "version": "2.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-react-hooks": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
+ "eslint-plugin-unicorn": {
+ "version": "45.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz",
+ "integrity": "sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "ci-info": "^3.6.1",
+ "clean-regexp": "^1.0.0",
+ "esquery": "^1.4.0",
+ "indent-string": "^4.0.0",
+ "is-builtin-module": "^3.2.0",
+ "jsesc": "^3.0.2",
+ "lodash": "^4.17.21",
+ "pluralize": "^8.0.0",
+ "read-pkg-up": "^7.0.1",
+ "regexp-tree": "^0.1.24",
+ "regjsparser": "^0.9.1",
+ "safe-regex": "^2.1.1",
+ "semver": "^7.3.8",
+ "strip-indent": "^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==",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "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": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ }
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true
+ },
+ "esm": {
+ "version": "3.2.25",
+ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
+ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "peer": true
+ },
+ "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"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "expect": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz",
+ "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==",
+ "dev": true,
+ "requires": {
+ "@jest/expect-utils": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "jest-matcher-utils": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1"
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "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-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "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"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-node-modules": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz",
+ "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==",
+ "dev": true,
+ "requires": {
+ "findup-sync": "^4.0.0",
+ "merge": "^2.1.1"
+ }
+ },
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
+ "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "resolve-dir": "^1.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "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"
+ }
+ }
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "gh-got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-7.1.0.tgz",
+ "integrity": "sha512-KeWkkhresa7sbpzQLYzITMgez5rMigUsijhmSAHcLDORIMUbdlkdoZyaN1wQvIjmUZnyb/wkAPaXb4MQKX0mdQ==",
+ "dev": true,
+ "requires": {
+ "got": "^8.0.0",
+ "is-plain-obj": "^1.1.0"
+ }
+ },
+ "git-raw-commits": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz",
+ "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==",
+ "dev": true,
+ "requires": {
+ "dargs": "^7.0.0",
+ "lodash": "^4.17.15",
+ "meow": "^8.0.0",
+ "split2": "^3.0.0",
+ "through2": "^4.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "gitconfiglocal": "^1.0.0",
+ "pify": "^2.3.0"
+ }
+ },
+ "git-semver-tags": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz",
+ "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==",
+ "dev": true,
+ "requires": {
+ "meow": "^8.0.0",
+ "semver": "^6.0.0"
+ }
+ },
+ "gitconfiglocal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz",
+ "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.2"
+ }
+ },
+ "glob": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
+ "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.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==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "peer": true
+ },
+ "global-dirs": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.4"
+ }
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ },
+ "dependencies": {
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "got": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
+ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^0.7.0",
+ "cacheable-request": "^2.1.1",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "into-stream": "^3.1.0",
+ "is-retry-allowed": "^1.1.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "mimic-response": "^1.0.0",
+ "p-cancelable": "^0.4.0",
+ "p-timeout": "^2.0.1",
+ "pify": "^3.0.0",
+ "safe-buffer": "^5.1.1",
+ "timed-out": "^4.0.1",
+ "url-parse-lax": "^3.0.0",
+ "url-to-options": "^1.0.1"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "dev": true
+ },
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.0",
+ "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==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "dev": true,
+ "requires": {
+ "has-symbol-support-x": "^1.4.1"
+ }
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "^1.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==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.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==",
+ "dev": true
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "husky": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz",
+ "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==",
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dev": true,
+ "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "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==",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "8.2.4",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz",
+ "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==",
+ "dev": true,
+ "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": "^7.0.0"
+ }
+ },
+ "internal-slot": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "into-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
+ "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==",
+ "dev": true,
+ "requires": {
+ "from2": "^2.1.1",
+ "p-is-promise": "^1.1.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-builtin-module": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
+ "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "^3.3.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==",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "is-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
+ "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^1.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.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==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "dev": true,
+ "requires": {
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
+ }
+ },
+ "jest": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz",
+ "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.3.1"
+ }
+ },
+ "jest-changed-files": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz",
+ "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==",
+ "dev": true,
+ "requires": {
+ "execa": "^5.0.0",
+ "p-limit": "^3.1.0"
+ }
+ },
+ "jest-circus": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz",
+ "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.3.1",
+ "@jest/expect": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.3.1",
+ "jest-matcher-utils": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-runtime": "^29.3.1",
+ "jest-snapshot": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.3.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-cli": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz",
+ "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "prompts": "^2.0.1",
+ "yargs": "^17.3.1"
+ }
+ },
+ "jest-config": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz",
+ "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "babel-jest": "^29.3.1",
+ "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.3.1",
+ "jest-environment-node": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "jest-regex-util": "^29.2.0",
+ "jest-resolve": "^29.3.1",
+ "jest-runner": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.3.1",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "jest-diff": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz",
+ "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "pretty-format": "^29.3.1"
+ }
+ },
+ "jest-docblock": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz",
+ "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==",
+ "dev": true,
+ "requires": {
+ "detect-newline": "^3.0.0"
+ }
+ },
+ "jest-each": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz",
+ "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.2.0",
+ "jest-util": "^29.3.1",
+ "pretty-format": "^29.3.1"
+ }
+ },
+ "jest-environment-node": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz",
+ "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.3.1",
+ "@jest/fake-timers": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "jest-mock": "^29.3.1",
+ "jest-util": "^29.3.1"
+ }
+ },
+ "jest-get-type": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
+ "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz",
+ "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "@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.2.0",
+ "jest-util": "^29.3.1",
+ "jest-worker": "^29.3.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ }
+ },
+ "jest-leak-detector": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz",
+ "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==",
+ "dev": true,
+ "requires": {
+ "jest-get-type": "^29.2.0",
+ "pretty-format": "^29.3.1"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz",
+ "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "pretty-format": "^29.3.1"
+ }
+ },
+ "jest-message-util": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz",
+ "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.3.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.3.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz",
+ "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "jest-util": "^29.3.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {}
+ },
+ "jest-regex-util": {
+ "version": "29.2.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz",
+ "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz",
+ "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.3.1",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.3.1",
+ "jest-validate": "^29.3.1",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^1.1.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz",
+ "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==",
+ "dev": true,
+ "requires": {
+ "jest-regex-util": "^29.2.0",
+ "jest-snapshot": "^29.3.1"
+ }
+ },
+ "jest-runner": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz",
+ "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.3.1",
+ "@jest/environment": "^29.3.1",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.2.0",
+ "jest-environment-node": "^29.3.1",
+ "jest-haste-map": "^29.3.1",
+ "jest-leak-detector": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-resolve": "^29.3.1",
+ "jest-runtime": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "jest-watcher": "^29.3.1",
+ "jest-worker": "^29.3.1",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ }
+ },
+ "jest-runtime": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz",
+ "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.3.1",
+ "@jest/fake-timers": "^29.3.1",
+ "@jest/globals": "^29.3.1",
+ "@jest/source-map": "^29.2.0",
+ "@jest/test-result": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@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.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-mock": "^29.3.1",
+ "jest-regex-util": "^29.2.0",
+ "jest-resolve": "^29.3.1",
+ "jest-snapshot": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "jest-snapshot": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz",
+ "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==",
+ "dev": true,
+ "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/traverse": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.3.1",
+ "@jest/transform": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/babel__traverse": "^7.0.6",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.3.1",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.3.1",
+ "jest-get-type": "^29.2.0",
+ "jest-haste-map": "^29.3.1",
+ "jest-matcher-utils": "^29.3.1",
+ "jest-message-util": "^29.3.1",
+ "jest-util": "^29.3.1",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.3.1",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "jest-util": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz",
+ "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-validate": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz",
+ "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.3.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.2.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.3.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ }
+ }
+ },
+ "jest-watcher": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz",
+ "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.3.1",
+ "string-length": "^4.0.1"
+ }
+ },
+ "jest-worker": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz",
+ "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "jest-util": "^29.3.1",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "js-sdsl": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
+ "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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=="
+ },
+ "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz",
+ "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "jsx-ast-utils": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
+ "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "array-includes": "^3.1.5",
+ "object.assign": "^4.1.3"
+ }
+ },
+ "keyv": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
+ "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "peer": true
+ },
+ "language-tags": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.7.tgz",
+ "integrity": "sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "language-subtag-registry": "^0.3.20"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "lint-staged": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.0.tgz",
+ "integrity": "sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "^3.1.0",
+ "colorette": "^2.0.19",
+ "commander": "^9.4.1",
+ "debug": "^4.3.4",
+ "execa": "^6.1.0",
+ "lilconfig": "2.0.6",
+ "listr2": "^5.0.5",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-inspect": "^1.12.2",
+ "pidtree": "^0.6.0",
+ "string-argv": "^0.3.1",
+ "yaml": "^2.1.3"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz",
+ "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^3.0.1",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ }
+ },
+ "human-signals": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
+ "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "requires": {
+ "path-key": "^4.0.0"
+ }
+ },
+ "onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^4.0.0"
+ }
+ },
+ "path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.0.tgz",
+ "integrity": "sha512-auf7Gi6QwO7HW//GA9seGvTXVGWl1CM/ADWh1+RxtXr6XOxnT65ovDl9fTi4e0monEyJxCHqDpF6QnFDXmJE4g==",
+ "dev": true
+ }
+ }
+ },
+ "listr2": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.6.tgz",
+ "integrity": "sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag==",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.19",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.7",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "dependencies": {
+ "cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ }
+ },
+ "slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "dev": true,
+ "peer": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+ "dev": true
+ },
+ "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.isfunction": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
+ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
+ "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==",
+ "dev": true
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "dev": true
+ },
+ "lodash.kebabcase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
+ "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==",
+ "dev": true
+ },
+ "lodash.map": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+ "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "lodash.mergewith": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+ "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
+ "dev": true
+ },
+ "lodash.snakecase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
+ "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==",
+ "dev": true
+ },
+ "lodash.startcase": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz",
+ "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==",
+ "dev": true
+ },
+ "lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+ "dev": true
+ },
+ "lodash.upperfirst": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz",
+ "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ }
+ },
+ "log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "longest": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz",
+ "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true
+ },
+ "makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "meow": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz",
+ "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==",
+ "dev": true,
+ "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": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "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": {
+ "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==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "merge": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz",
+ "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "peer": true
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
+ "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "dev": true
+ },
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ }
+ },
+ "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==",
+ "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==",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
+ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^2.0.0",
+ "query-string": "^5.0.1",
+ "sort-keys": "^2.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "object.values": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true
+ },
+ "p-cancelable": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
+ "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "dev": true
+ },
+ "p-is-promise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
+ "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==",
+ "dev": true
+ },
+ "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": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.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==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-timeout": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
+ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-github-repo-url": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz",
+ "integrity": "sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true
+ }
+ }
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pirates": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
+ "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz",
+ "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.0.0",
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dev": true,
+ "requires": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ }
+ },
+ "prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true,
+ "peer": 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=="
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "dev": true
+ },
+ "query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dev": true,
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ }
+ },
+ "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.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "regexp-tree": {
+ "version": "0.1.24",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
+ "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
+ "dev": true
+ },
+ "regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz",
+ "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsgen": "^0.7.1",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ }
+ },
+ "regjsgen": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz",
+ "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==",
+ "dev": true
+ },
+ "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
+ }
+ }
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true
+ },
+ "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=="
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^5.0.0"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.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==",
+ "dev": true
+ },
+ "resolve-global": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz",
+ "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==",
+ "dev": true,
+ "requires": {
+ "global-dirs": "^0.1.1"
+ }
+ },
+ "resolve.exports": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
+ "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==",
+ "dev": true
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "dev": true,
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "right-pad": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz",
+ "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "rxjs": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+ "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
+ "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
+ "dev": true,
+ "requires": {
+ "regexp-tree": "~0.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "peer": true,
+ "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"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
+ "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==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "semver-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
+ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "dev": true
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "dev": true
+ }
+ }
+ },
+ "sort-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+ "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.12",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
+ "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
+ "dev": true
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+ "dev": true,
+ "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": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "standard-version": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz",
+ "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "conventional-changelog": "3.1.25",
+ "conventional-changelog-config-spec": "2.1.0",
+ "conventional-changelog-conventionalcommits": "4.6.3",
+ "conventional-recommended-bump": "6.1.0",
+ "detect-indent": "^6.0.0",
+ "detect-newline": "^3.1.0",
+ "dotgitignore": "^2.1.0",
+ "figures": "^3.1.0",
+ "find-up": "^5.0.0",
+ "git-semver-tags": "^4.0.0",
+ "semver": "^7.1.1",
+ "stringify-package": "^1.0.1",
+ "yargs": "^16.0.0"
+ },
+ "dependencies": {
+ "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==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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-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"
+ }
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "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"
+ }
+ }
+ }
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true
+ },
+ "string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "stringify-package": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz",
+ "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.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==",
+ "dev": true
+ },
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true
+ },
+ "terser": {
+ "version": "5.16.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "peer": true
+ },
+ "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,
+ "peer": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
+ "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ },
+ "dependencies": {
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "3"
+ }
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "ts-jest": {
+ "version": "29.0.3",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz",
+ "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==",
+ "dev": true,
+ "requires": {
+ "bs-logger": "0.x",
+ "fast-json-stable-stringify": "2.x",
+ "jest-util": "^29.0.0",
+ "json5": "^2.2.1",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "semver": "7.x",
+ "yargs-parser": "^21.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "ts-loader": {
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz",
+ "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "enhanced-resolve": "^5.0.0",
+ "micromatch": "^4.0.0",
+ "semver": "^7.3.4"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "ts-node": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "dev": true,
+ "requires": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ }
+ },
+ "tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
+ "dev": true
+ },
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "4.9.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "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
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true
+ },
+ "update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "dev": true,
+ "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-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true
+ },
+ "v8-to-istanbul": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
+ "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "dependencies": {
+ "convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vscode-json-languageservice": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz",
+ "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==",
+ "dev": true,
+ "requires": {
+ "jsonc-parser": "^3.0.0",
+ "vscode-languageserver-textdocument": "^1.0.3",
+ "vscode-languageserver-types": "^3.16.0",
+ "vscode-nls": "^5.0.0",
+ "vscode-uri": "^3.0.3"
+ }
+ },
+ "vscode-languageserver-textdocument": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz",
+ "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==",
+ "dev": true
+ },
+ "vscode-languageserver-types": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
+ "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==",
+ "dev": true
+ },
+ "vscode-nls": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
+ "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==",
+ "dev": true
+ },
+ "vscode-uri": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz",
+ "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==",
+ "dev": true
+ },
+ "walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "requires": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "webpack": {
+ "version": "5.75.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "dev": true,
+ "peer": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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"
+ }
+ },
+ "widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.0.0"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.6.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
+ "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
+ "dev": true,
+ "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": {
+ "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==",
+ "dev": true
+ }
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index b058d0fb9..6cf698e75 100755
--- a/package.json
+++ b/package.json
@@ -1,31 +1,85 @@
{
"name": "rudder-config-schema",
- "version": "1.0.0",
+ "version": "1.1.8",
+ "description": "",
+ "main": "src/index.ts",
"private": true,
+ "author": "RudderStack",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/rudderlabs/rudder-config-schema/issues"
+ },
+ "homepage": "https://github.com/rudderlabs/rudder-config-schema#readme",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/rudderlabs/rudder-config-schema.git"
+ },
"scripts": {
- "test": "jest -- ./src/*",
- "start": "node dist/server.js",
- "build": "tsc"
+ "setup": "npm ci",
+ "test": "jest --coverage",
+ "test:silent": "npm run test -- --silent",
+ "release": "npx standard-version",
+ "check:lint": "eslint \"src/**/*.*\" -f json -o reports/eslint.json || exit 0",
+ "format": "prettier . --write",
+ "lint:fix": "eslint \"src/**/*.*\" --fix",
+ "prepare": "husky install",
+ "pre-commit": "npm run test && npx lint-staged",
+ "commit-msg": "commitlint --edit",
+ "commit": "git-cz",
+ "release:github": "DEBUG=conventional-github-releaser npx conventional-github-releaser -p angular"
},
"devDependencies": {
- "@swc/jest": "^0.2.21",
- "@types/express": "^4.17.14",
- "@types/glob": "^7.1.4",
- "@types/jest": "^26.0.23",
- "jest": "^28.1.0",
- "rimraf": "^3.0.2",
- "ts-loader": "^9.2.6",
- "tsconfig-paths": "^3.8.0",
- "typescript": "^4.4.3"
+ "@babel/core": "^7.20.5",
+ "@babel/eslint-parser": "^7.19.1",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.18.6",
+ "@babel/plugin-transform-object-assign": "^7.18.6",
+ "@babel/preset-env": "^7.20.2",
+ "@commitlint/config-conventional": "^17.3.0",
+ "@digitalroute/cz-conventional-changelog-for-jira": "^8.0.0",
+ "@swc/core": "^1.3.24",
+ "@swc/jest": "^0.2.24",
+ "@types/express": "^4.17.15",
+ "@types/glob": "^8.0.0",
+ "@types/jest": "^29.2.4",
+ "@typescript-eslint/eslint-plugin": "^5.47.0",
+ "@typescript-eslint/parser": "^5.47.0",
+ "commander": "^9.4.1",
+ "commitizen": "^4.2.6",
+ "commitlint": "^17.3.0",
+ "conventional-github-releaser": "^3.1.5",
+ "eslint": "^8.30.0",
+ "eslint-config-airbnb": "^19.0.4",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-plugin-compat": "^4.0.2",
+ "eslint-plugin-import": "^2.26.0",
+ "eslint-plugin-json": "^3.1.0",
+ "eslint-plugin-unicorn": "^45.0.2",
+ "esm": "^3.2.25",
+ "husky": "^8.0.2",
+ "jest": "^29.3.1",
+ "lint-staged": "^13.1.0",
+ "prettier": "^2.8.1",
+ "standard-version": "^9.5.0",
+ "ts-jest": "^29.0.3",
+ "ts-loader": "^9.4.2",
+ "typescript": "^4.9.4"
},
"dependencies": {
- "ajv": "^8.6.3",
- "ajv-draft-04": "^1.0.0",
- "glob": "^7.1.7",
- "ts-jest": "28.0.8"
+ "ajv": "^8.11.2",
+ "glob": "^8.0.3"
},
"lint-staged": {
- "*.{js,ts}": "eslint --cache --fix",
"*.{json,js,ts,md}": "prettier --write"
+ },
+ "config": {
+ "commitizen": {
+ "path": "./node_modules/@digitalroute/cz-conventional-changelog-for-jira",
+ "jiraMode": false,
+ "jiraOptional": true,
+ "skipScope": true,
+ "defaultType": "feat"
+ }
}
}
diff --git a/scripts/action.py b/scripts/action.py
deleted file mode 100644
index 9c25fd79c..000000000
--- a/scripts/action.py
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/env python3
-import requests
-import json
-import os
-import sys
-import jsondiff
-
-#########################
-# ENV VARIABLES FOT TESTING
-# CONTROL_PLANE_URL="https://api.rudderstack.com"
-# print(CONTROL_PLANE_URL)
-# USERNAME="cbadmin"
-# print(USERNAME)
-# PASSWORD="testpassword"
-# print(PASSWORD)
-#########################
-
-#########################
-# ENV VARIABLES
-CONTROL_PLANE_URL=sys.argv[1]
-print(CONTROL_PLANE_URL)
-USERNAME=os.environ['API_USER'] #sys.argv[2]
-print(USERNAME)
-PASSWORD=os.environ['API_PASSWORD'] #sys.argv[3]
-#print(PASSWORD)
-#########################
-# CONSTANTS
-HEADER = {"Content-Type": "application/json"}
-AUTH = (USERNAME, PASSWORD)
-#########################
-
-
-#########################
-# UTIL METHODS
-def parse_response(resp):
- if resp.status_code >= 200 and resp.status_code <= 300:
- return resp.status_code, resp.json()
- else:
- return resp.status_code, str(resp.content)
-
-def get_persisted_store(base_url, selector):
- request_url = f'{base_url}/{selector}-definitions'
- response = requests.get(request_url)
- return json.loads(response.text)
-
-def get_config_definition(base_url, selector, name):
- request_url = f'{base_url}/{selector}-definitions/{name}'
- response = requests.get(request_url)
- return response
-
-def get_file_content(name, selector):
- file_selectors = ['db_config.json', 'ui_config.json', 'schema.json']
-
- directory = f'./data/{selector}s/{name}'
- available_files = os.listdir(directory)
-
- file_content = {}
-
- for file_selector in file_selectors:
- if file_selector in available_files:
- with open (f'{directory}/{file_selector}', 'r') as f:
- file_content.update(json.loads(f.read()))
-
- return file_content
-
-def update_config_definition(selector, name, fileData):
- url = f'{CONTROL_PLANE_URL}/{selector}-definitions/{name}'
- resp = requests.post(url=url, headers=HEADER, data=json.dumps(fileData), auth=AUTH)
- return parse_response(resp)
-
-def create_config_definition(selector, fileData):
- url = f'{CONTROL_PLANE_URL}/{selector}-definitions/'
- resp = requests.post(url=url, headers=HEADER, data=json.dumps(fileData), auth=AUTH)
- return parse_response(resp)
-
-def update_config(data_diff, selector):
- results = []
- for diff in data_diff:
- name = diff['name']
- fileData = get_file_content(name, selector)
- nameInConfig = fileData["name"]
-
- if diff['action'] == 'create':
- url = f'{CONTROL_PLANE_URL}/{selector}-definitions'
- else:
- url = f'{CONTROL_PLANE_URL}/{selector}-definitions/{nameInConfig}'
-
- resp = requests.post(url=url, headers=HEADER, data=json.dumps(fileData), auth=AUTH)
- status, response = parse_response(resp)
- diff['update'] = {"status": status, "response": response}
- # results.append(diff)
- results.append(name)
-
-
- return json.dumps(results, indent=2)
-
-def update_diff_db(selector):
- final_report = []
-
- ## data sets
- current_items = os.listdir(f'./data/{selector}s')
-
- for item in current_items:
- updated_data = get_file_content(item, selector)
- persisted_data = get_config_definition(CONTROL_PLANE_URL, selector, updated_data["name"])
-
- if persisted_data.status_code == 200:
- diff = jsondiff.diff(json.loads(persisted_data.text), updated_data, marshal=True)
- # ignore the $delete - values present in DB but missing in files. Anyways this doesn't get reflected in DB as keys are missing in files itself.
- # Best practice is to make sure all keys are maintained in the config files irrespective of them being null.
- del diff['$delete']
-
- if len(diff.keys()) > 0: # changes exist
- #print(diff)
- status, response = update_config_definition(selector, updated_data["name"], updated_data)
- final_report.append({"name": updated_data["name"], "action":"update", "status": status})
- else:
- final_report.append({"name": updated_data["name"], "action":"na", "status": ""})
-
- else:
- status, response = create_config_definition(selector, updated_data)
- final_report.append({"name": updated_data["name"], "action":"create", "status": status})
-
- return final_report
-
-def get_stale_data(selector, report):
- stale_config_report = []
- persisted_data_set = get_persisted_store(CONTROL_PLANE_URL, selector)
- persisted_items = [item['name'] for item in persisted_data_set]
- file_items = [item['name'] for item in report]
-
- for item in persisted_items:
- if item not in file_items:
- stale_config_report.append({item})
-
- return stale_config_report
-
-if __name__ == '__main__':
- print("Running Destination Definitions Updates")
- dest_final_report = update_diff_db('destination')
- print("Destination Definition Update Report")
- print(dest_final_report)
- print("Destination Stale Config Report")
- print(get_stale_data('destination', dest_final_report))
-
- print("Running Source Definitions Updates")
- src_final_report = update_diff_db('source')
- print("Source Definition Update Report")
- print(src_final_report)
- print("Source Stale Config Report")
- print(get_stale_data('source', src_final_report))
diff --git a/scripts/deployToDB.py b/scripts/deployToDB.py
new file mode 100644
index 000000000..78d383dfe
--- /dev/null
+++ b/scripts/deployToDB.py
@@ -0,0 +1,152 @@
+#!/usr/bin/env python3
+import requests
+import json
+import os
+import sys
+import jsondiff
+
+#########################
+# ENV VARIABLES FOT TESTING
+# CONTROL_PLANE_URL="https://api.rudderstack.com"
+# print(CONTROL_PLANE_URL)
+# USERNAME="cbadmin"
+# print(USERNAME)
+# PASSWORD="testpassword"
+# print(PASSWORD)
+#########################
+
+#########################
+# ENV VARIABLES
+CONTROL_PLANE_URL=sys.argv[1]
+print(CONTROL_PLANE_URL)
+USERNAME=os.environ['API_USER'] #sys.argv[2]
+print(USERNAME)
+PASSWORD=os.environ['API_PASSWORD'] #sys.argv[3]
+#print(PASSWORD)
+#########################
+# CONSTANTS
+HEADER = {"Content-Type": "application/json"}
+AUTH = (USERNAME, PASSWORD)
+CONFIG_DIR = 'src/configurations'
+#########################
+
+
+#########################
+# UTIL METHODS
+def parse_response(resp):
+ if resp.status_code >= 200 and resp.status_code <= 300:
+ return resp.status_code, resp.json()
+ else:
+ return resp.status_code, str(resp.content)
+
+def get_persisted_store(base_url, selector):
+ request_url = f'{base_url}/{selector}-definitions'
+ response = requests.get(request_url)
+ return json.loads(response.text)
+
+def get_config_definition(base_url, selector, name):
+ request_url = f'{base_url}/{selector}-definitions/{name}'
+ response = requests.get(request_url)
+ return response
+
+def get_file_content(name, selector):
+ file_selectors = ['db-config.json', 'ui-config.json', 'schema.json']
+
+ directory = f'./{CONFIG_DIR}/{selector}s/{name}'
+ available_files = os.listdir(directory)
+
+ file_content = {}
+
+ for file_selector in file_selectors:
+ if file_selector in available_files:
+ with open (f'{directory}/{file_selector}', 'r') as f:
+ file_content.update(json.loads(f.read()))
+
+ return file_content
+
+def update_config_definition(selector, name, fileData):
+ url = f'{CONTROL_PLANE_URL}/{selector}-definitions/{name}'
+ resp = requests.post(url=url, headers=HEADER, data=json.dumps(fileData), auth=AUTH)
+ return parse_response(resp)
+
+def create_config_definition(selector, fileData):
+ url = f'{CONTROL_PLANE_URL}/{selector}-definitions/'
+ resp = requests.post(url=url, headers=HEADER, data=json.dumps(fileData), auth=AUTH)
+ return parse_response(resp)
+
+def update_config(data_diff, selector):
+ results = []
+ for diff in data_diff:
+ name = diff['name']
+ fileData = get_file_content(name, selector)
+ nameInConfig = fileData["name"]
+
+ if diff['action'] == 'create':
+ url = f'{CONTROL_PLANE_URL}/{selector}-definitions'
+ else:
+ url = f'{CONTROL_PLANE_URL}/{selector}-definitions/{nameInConfig}'
+
+ resp = requests.post(url=url, headers=HEADER, data=json.dumps(fileData), auth=AUTH)
+ status, response = parse_response(resp)
+ diff['update'] = {"status": status, "response": response}
+ # results.append(diff)
+ results.append(name)
+
+
+ return json.dumps(results, indent=2)
+
+def update_diff_db(selector):
+ final_report = []
+
+ ## data sets
+ current_items = os.listdir(f'./{CONFIG_DIR}/{selector}s')
+
+ for item in current_items:
+ updated_data = get_file_content(item, selector)
+ persisted_data = get_config_definition(CONTROL_PLANE_URL, selector, updated_data["name"])
+
+ if persisted_data.status_code == 200:
+ diff = jsondiff.diff(json.loads(persisted_data.text), updated_data, marshal=True)
+ # ignore the $delete - values present in DB but missing in files. Anyways this doesn't get reflected in DB as keys are missing in files itself.
+ # Best practice is to make sure all keys are maintained in the config files irrespective of them being null.
+ del diff['$delete']
+
+ if len(diff.keys()) > 0: # changes exist
+ #print(diff)
+ status, response = update_config_definition(selector, updated_data["name"], updated_data)
+ final_report.append({"name": updated_data["name"], "action":"update", "status": status})
+ else:
+ final_report.append({"name": updated_data["name"], "action":"na", "status": ""})
+
+ else:
+ status, response = create_config_definition(selector, updated_data)
+ final_report.append({"name": updated_data["name"], "action":"create", "status": status})
+
+ return final_report
+
+def get_stale_data(selector, report):
+ stale_config_report = []
+ persisted_data_set = get_persisted_store(CONTROL_PLANE_URL, selector)
+ persisted_items = [item['name'] for item in persisted_data_set]
+ file_items = [item['name'] for item in report]
+
+ for item in persisted_items:
+ if item not in file_items:
+ stale_config_report.append({item})
+
+ return stale_config_report
+
+if __name__ == '__main__':
+ print("Running Destination Definitions Updates")
+ dest_final_report = update_diff_db('destination')
+ print("Destination Definition Update Report")
+ print(dest_final_report)
+ print("Destination Stale Config Report")
+ print(get_stale_data('destination', dest_final_report))
+
+ print("Running Source Definitions Updates")
+ src_final_report = update_diff_db('source')
+ print("Source Definition Update Report")
+ print(src_final_report)
+ print("Source Stale Config Report")
+ print(get_stale_data('source', src_final_report))
diff --git a/server.ts b/server.ts
deleted file mode 100644
index 0b06388d9..000000000
--- a/server.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import express from 'express';
-
-const app = express();
-const PORT = process.env.SERVER_PORT || 8432;
-
-app.use(express.json());
-
-app.get('/', (req,res)=> {
- res.send(`Server is listening on port ${PORT}`);
-})
-app.listen(PORT);
\ No newline at end of file
diff --git a/src/configurations/destinations/active_campaign/db-config.json b/src/configurations/destinations/active_campaign/db-config.json
new file mode 100644
index 000000000..96afb277a
--- /dev/null
+++ b/src/configurations/destinations/active_campaign/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "ACTIVE_CAMPAIGN",
+ "displayName": "ActiveCampaign",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiUrl", "apiKey", "eventKey", "actid"]
+ },
+ "secretKeys": ["apiKey", "eventKey", "actid"]
+ }
+}
diff --git a/data/destinations/awin/metadata.json b/src/configurations/destinations/active_campaign/metadata.json
similarity index 100%
rename from data/destinations/awin/metadata.json
rename to src/configurations/destinations/active_campaign/metadata.json
diff --git a/src/configurations/destinations/active_campaign/schema.json b/src/configurations/destinations/active_campaign/schema.json
new file mode 100644
index 000000000..64a80dc3e
--- /dev/null
+++ b/src/configurations/destinations/active_campaign/schema.json
@@ -0,0 +1,25 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiUrl", "apiKey"],
+ "properties": {
+ "apiUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ },
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
+ },
+ "actid": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+}
diff --git a/data/destinations/active_campaign/ui_config.json b/src/configurations/destinations/active_campaign/ui-config.json
similarity index 100%
rename from data/destinations/active_campaign/ui_config.json
rename to src/configurations/destinations/active_campaign/ui-config.json
diff --git a/src/configurations/destinations/adj/db-config.json b/src/configurations/destinations/adj/db-config.json
new file mode 100644
index 000000000..860d53cf5
--- /dev/null
+++ b/src/configurations/destinations/adj/db-config.json
@@ -0,0 +1,46 @@
+{
+ "name": "ADJ",
+ "displayName": "Adjust",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "appToken",
+ "customMappings",
+ "delay",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "unity",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "appToken",
+ "customMappings",
+ "delay",
+ "environment",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "partnerParamsKeys"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "flutter": ["useNativeSDK"],
+ "unity": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/data/destinations/axeptio/metadata.json b/src/configurations/destinations/adj/metadata.json
similarity index 100%
rename from data/destinations/axeptio/metadata.json
rename to src/configurations/destinations/adj/metadata.json
diff --git a/data/sources/mailjet/schema.json b/src/configurations/destinations/adj/schema.json
similarity index 100%
rename from data/sources/mailjet/schema.json
rename to src/configurations/destinations/adj/schema.json
diff --git a/src/configurations/destinations/adj/ui-config.json b/src/configurations/destinations/adj/ui-config.json
new file mode 100644
index 000000000..675c3bc9b
--- /dev/null
+++ b/src/configurations/destinations/adj/ui-config.json
@@ -0,0 +1,135 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "APP Token",
+ "value": "appToken",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid App Token",
+ "required": true,
+ "placeholder": "e.g: bSjsdGYsOo9sasdjw23Shj"
+ },
+ {
+ "type": "checkbox",
+ "label": "Send to Production Environment on Adjust",
+ "value": "environment",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Map Events to Adjust Event Tokens",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "labelLeft": "Event Name",
+ "labelRight": "Event Token",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: product_purchased",
+ "placeholderRight": "e.g: xcdrf5",
+ "value": "customMappings"
+ }
+ ]
+ },
+ {
+ "title": "Rudderstack Parameters to Partner Parameters",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "labelLeft": "Rudderstack Properties",
+ "labelRight": "Adjust Partner Parameters",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: revenue",
+ "placeholderRight": "e.g: value",
+ "value": "partnerParamsKeys",
+ "footerNote": "RudderStack will take the values for these properties from the track call and map them to the corresponding Adjust Partner Parameter keys."
+ }
+ ]
+ },
+ {
+ "title": "Delay Time before SDK initialization",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Delay Time (in seconds)",
+ "value": "delay",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": false,
+ "placeholder": "7"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/adobe_analytics/db-config.json b/src/configurations/destinations/adobe_analytics/db-config.json
new file mode 100644
index 000000000..d4a16ef1d
--- /dev/null
+++ b/src/configurations/destinations/adobe_analytics/db-config.json
@@ -0,0 +1,103 @@
+{
+ "name": "ADOBE_ANALYTICS",
+ "displayName": "Adobe Analytics",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "trackingServerUrl",
+ "reportSuiteIds",
+ "sslHeartbeat",
+ "heartbeatTrackingServerUrl",
+ "eventsToTypes",
+ "marketingCloudOrgId",
+ "dropVisitorId",
+ "trackingServerSecureUrl",
+ "timestampOption",
+ "preferVisitorId",
+ "rudderEventsToAdobeEvents",
+ "trackPageName",
+ "contextDataMapping",
+ "contextDataPrefix",
+ "eVarMapping",
+ "hierMapping",
+ "listMapping",
+ "listDelimiter",
+ "customPropsMapping",
+ "propsDelimiter",
+ "eventMerchEventToAdobeEvent",
+ "eventMerchProperties",
+ "productMerchEventToAdobeEvent",
+ "productMerchProperties",
+ "productMerchEvarsMap",
+ "productIdentifier",
+ "proxyNormalUrl",
+ "proxyHeartbeatUrl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "trackingServerUrl",
+ "reportSuiteIds",
+ "sslHeartbeat",
+ "heartbeatTrackingServerUrl",
+ "useUtf8Charset",
+ "useSecureServerSide",
+ "eventsToTypes",
+ "marketingCloudOrgId",
+ "dropVisitorId",
+ "trackingServerSecureUrl",
+ "timestampOption",
+ "preferVisitorId",
+ "noFallbackVisitorId",
+ "timestampOptionalReporting",
+ "rudderEventsToAdobeEvents",
+ "trackPageName",
+ "contextDataMapping",
+ "contextDataPrefix",
+ "useLegacyLinkName",
+ "pageNameFallbackTostring",
+ "mobileEventMapping",
+ "sendFalseValues",
+ "eVarMapping",
+ "hierMapping",
+ "listMapping",
+ "listDelimiter",
+ "customPropsMapping",
+ "propsDelimiter",
+ "eventMerchEventToAdobeEvent",
+ "eventMerchProperties",
+ "productMerchEventToAdobeEvent",
+ "productMerchProperties",
+ "productMerchEvarsMap",
+ "productIdentifier",
+ "proxyNormalUrl",
+ "proxyHeartbeatUrl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ }
+ }
+}
diff --git a/data/destinations/mailjet/metadata.json b/src/configurations/destinations/adobe_analytics/metadata.json
similarity index 100%
rename from data/destinations/mailjet/metadata.json
rename to src/configurations/destinations/adobe_analytics/metadata.json
diff --git a/src/configurations/destinations/adobe_analytics/schema.json b/src/configurations/destinations/adobe_analytics/schema.json
new file mode 100644
index 000000000..561862ac5
--- /dev/null
+++ b/src/configurations/destinations/adobe_analytics/schema.json
@@ -0,0 +1,376 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["reportSuiteIds"],
+ "type": "object",
+ "properties": {
+ "trackingServerUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
+ },
+ "trackingServerSecureUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
+ },
+ "reportSuiteIds": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$"
+ },
+ "sslHeartbeat": {
+ "type": "boolean"
+ },
+ "heartbeatTrackingServerUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
+ },
+ "useUtf8Charset": {
+ "type": "boolean"
+ },
+
+ "useSecureServerSide": {
+ "type": "boolean"
+ },
+
+ "proxyNormalUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
+ },
+
+ "proxyHeartbeatUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
+ },
+ "eventsToTypes": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(initHeartbeat|heartbeatPlaybackStarted|heartbeatPlaybackPaused|heartbeatPlaybackResumed|heartbeatPlaybackCompleted|heartbeatPlaybackInterrupted|heartbeatContentStarted|heartbeatContentComplete|heartbeatAdBreakStarted|heartbeatAdBreakCompleted|heartbeatAdStarted|heartbeatAdCompleted|heartbeatAdSkipped|heartbeatSeekStarted|heartbeatSeekCompleted|heartbeatBufferStarted|heartbeatBufferCompleted|heartbeatQualityUpdated|heartbeatUpdatePlayhead)$"
+ }
+ }
+ }
+ },
+ "marketingCloudOrgId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "dropVisitorId": {
+ "type": "boolean"
+ },
+ "timestampOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disabled|hybrid|optional|enabled)$"
+ },
+ "timestampOptionalReporting": {
+ "type": "boolean"
+ },
+ "noFallbackVisitorId": {
+ "type": "boolean"
+ },
+ "preferVisitorId": {
+ "type": "boolean"
+ },
+ "rudderEventsToAdobeEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "trackPageName": {
+ "type": "boolean"
+ },
+ "contextDataMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "contextDataPrefix": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "useLegacyLinkName": {
+ "type": "boolean"
+ },
+ "pageNameFallbackTostring": {
+ "type": "boolean"
+ },
+ "mobileEventMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "sendFalseValues": {
+ "type": "boolean"
+ },
+ "eVarMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "hierMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "listMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "listDelimiter": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "^$|(^env[.].+)|^(\\||:|,|;|/)$"
+ }
+ }
+ }
+ },
+ "customPropsMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "propsDelimiter": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "^$|(^env[.].+)|^(\\||:|,|;|/)$"
+ }
+ }
+ }
+ },
+ "eventMerchEventToAdobeEvent": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventMerchProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventMerchProperties": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "productMerchEventToAdobeEvent": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "productMerchProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "productMerchProperties": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "productMerchEvarsMap": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "productIdentifier": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(name|id|sku)$"
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ },
+ "android": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/adobe_analytics/ui-config.json b/src/configurations/destinations/adobe_analytics/ui-config.json
new file mode 100644
index 000000000..f5ecf8aa4
--- /dev/null
+++ b/src/configurations/destinations/adobe_analytics/ui-config.json
@@ -0,0 +1,613 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Tracking Server URL",
+ "value": "trackingServerUrl",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Please put a valid url"
+ },
+ {
+ "type": "textInput",
+ "label": "Tracking Server Secure URL",
+ "value": "trackingServerSecureUrl",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Please put a valid url"
+ },
+ {
+ "type": "textInput",
+ "label": "Report Suite ID(s)",
+ "value": "reportSuiteIds",
+ "required": true,
+ "footerNote": "You can add multiple report suite ids by separated by commas."
+ },
+ {
+ "type": "checkbox",
+ "label": "Check for Heartbeat calls to be made over https",
+ "value": "sslHeartbeat",
+ "default": true
+ },
+ {
+ "type": "textInput",
+ "label": "Heartbeat Tracking Server URL",
+ "value": "heartbeatTrackingServerUrl",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Please put a valid url"
+ },
+ {
+ "type": "checkbox",
+ "label": "Use UTF-8 charset",
+ "value": "useUtf8Charset",
+ "default": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Use Secure URL for Server-side",
+ "value": "useSecureServerSide",
+ "default": true
+ },
+ {
+ "type": "textInput",
+ "label": "Adobe Analytics Javascript SDK URL",
+ "value": "proxyNormalUrl",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Please put a valid url"
+ },
+ {
+ "type": "textInput",
+ "label": "Adobe Analytics Hearbeat SDK URL",
+ "value": "proxyHeartbeatUrl",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Please put a valid url"
+ }
+ ]
+ },
+ {
+ "title": "Adobe Heartbeat Settings",
+ "fields": [
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map your Rudder video events with types of Video Events",
+ "labelLeft": "Video Event Name",
+ "labelRight": "Type of Video Event",
+ "value": "eventsToTypes",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g. video playback started",
+ "options": [
+ {
+ "name": "Initialise Heartbeat",
+ "value": "initHeartbeat"
+ },
+ {
+ "name": "Heartbeat Playback Started",
+ "value": "heartbeatPlaybackStarted"
+ },
+ {
+ "name": "Heartbeat Playback Paused",
+ "value": "heartbeatPlaybackPaused"
+ },
+ {
+ "name": "Heartbeat Playback Resumed",
+ "value": "heartbeatPlaybackResumed"
+ },
+ {
+ "name": "Heartbeat Playback Completed",
+ "value": "heartbeatPlaybackCompleted"
+ },
+ {
+ "name": "Heartbeat Playback Interrupted",
+ "value": "heartbeatPlaybackInterrupted"
+ },
+ {
+ "name": "Heartbeat Content Start",
+ "value": "heartbeatContentStarted"
+ },
+ {
+ "name": "Heartbeat Content Complete",
+ "value": "heartbeatContentComplete"
+ },
+ {
+ "name": "Heartbeat Ad BreakStarted",
+ "value": "heartbeatAdBreakStarted"
+ },
+ {
+ "name": "Heartbeat Ad Break Completed",
+ "value": "heartbeatAdBreakCompleted"
+ },
+ {
+ "name": "Heartbeat Ad Start",
+ "value": "heartbeatAdStarted"
+ },
+ {
+ "name": "Heartbeat Ad Completed",
+ "value": "heartbeatAdCompleted"
+ },
+ {
+ "name": "Heartbeat Ad Skipped",
+ "value": "heartbeatAdSkipped"
+ },
+ {
+ "name": "Heartbeat Seek Started",
+ "value": "heartbeatSeekStarted"
+ },
+ {
+ "name": "Heartbeat Seek Completed",
+ "value": "heartbeatSeekCompleted"
+ },
+ {
+ "name": "Heartbeat Buffer Started",
+ "value": "heartbeatBufferStarted"
+ },
+ {
+ "name": "Heartbeat Buffer Completed",
+ "value": "heartbeatBufferCompleted"
+ },
+ {
+ "name": "Heartbeat Quality Updated",
+ "value": "heartbeatQualityUpdated"
+ },
+ {
+ "name": "Heartbeat Playhead Update",
+ "value": "heartbeatUpdatePlayhead"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Identity Resolution",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Marketing Cloud Organization Id",
+ "value": "marketingCloudOrgId"
+ },
+ {
+ "type": "checkbox",
+ "label": "Drop Visitor Id",
+ "value": "dropVisitorId",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Timestamps",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Timestamp Option",
+ "value": "timestampOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Timestamp Hybrid",
+ "value": "hybrid"
+ },
+ {
+ "name": "Timestamp Optional",
+ "value": "optional"
+ },
+ {
+ "name": "Timestamp Enabled",
+ "value": "enabled"
+ },
+ {
+ "name": "Timestamp Disabled",
+ "value": "disabled"
+ }
+ ],
+ "defaultOption": {
+ "name": "Timestamp Disabled",
+ "value": "disabled"
+ }
+ },
+ {
+ "type": "checkbox",
+ "label": "Send Both Timestamp and VisitorID for Timestamp Optional Reporting Suites",
+ "value": "timestampOptionalReporting",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "No Fallbacks for Visitor ID",
+ "value": "noFallbackVisitorId",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Prefer Visitor Id",
+ "value": "preferVisitorId",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Event and Property Mappings",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Events to Adobe Custom Events",
+ "value": "rudderEventsToAdobeEvents",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. Product Searched",
+ "placeholderRight": "event1,event2",
+ "labelLeft": "Event Name",
+ "labelRight": "Adobe Custom Event",
+ "footerNote": "Add one event or many events for adobe custom events separated by comma"
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable pageName for Track Events",
+ "value": "trackPageName",
+ "default": true
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Context data to Adobe Context Data",
+ "value": "contextDataMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. page.name",
+ "placeholderRight": "pName",
+ "labelLeft": "Context Data path",
+ "labelRight": "Adobe Context Data property name",
+ "footerNote": "Add properties under context key in rudder payload"
+ },
+ {
+ "type": "textInput",
+ "placeholder": "eg: rudder-",
+ "value": "contextDataPrefix",
+ "label": "Prefix to add before all contextData property.",
+ "required": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Use Legacy LinkName",
+ "value": "useLegacyLinkName",
+ "default": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Page Name Fallback to Screen",
+ "value": "pageNameFallbackTostring",
+ "default": true
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Mobile events",
+ "value": "mobileEventMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. page.name",
+ "placeholderRight": "pName",
+ "labelLeft": "Context Data path",
+ "labelRight": "Adobe Context Data property name",
+ "footerNote": "Add properties under context key in rudder payload"
+ },
+ {
+ "type": "checkbox",
+ "label": "Send false value from properties ",
+ "value": "sendFalseValues",
+ "default": true
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Properties to Adobe eVars",
+ "value": "eVarMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. phone",
+ "placeholderRight": "2",
+ "labelLeft": "Rudder Property",
+ "labelRight": "eVar Index",
+ "footerNote": "Only give the index of the eVar"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Properties to Adobe Hierarchy properties",
+ "value": "hierMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. phone",
+ "placeholderRight": "2",
+ "labelLeft": "Rudder Property",
+ "labelRight": "hier Index",
+ "footerNote": "Only give the index of the hier"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Properties to Adobe list properties",
+ "value": "listMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. listProp",
+ "placeholderRight": "2",
+ "labelLeft": "Rudder Property",
+ "labelRight": "list Index",
+ "footerNote": "The list properties should be an array/string separated by commas"
+ },
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map your Rudder Property with Delimiters for list properties",
+ "labelLeft": "Rudder Property",
+ "labelRight": "List Delimiter",
+ "value": "listDelimiter",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g. prop",
+ "options": [
+ {
+ "name": "|",
+ "value": "|"
+ },
+ {
+ "name": ":",
+ "value": ":"
+ },
+ {
+ "name": ",",
+ "value": ","
+ },
+ {
+ "name": ";",
+ "value": ";"
+ },
+ {
+ "name": "/",
+ "value": "/"
+ }
+ ],
+ "defaultOption": {
+ "name": ",",
+ "value": ","
+ }
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Properties to Adobe Custom properties",
+ "value": "customPropsMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g phone",
+ "placeholderRight": "2",
+ "labelLeft": "Rudder Property",
+ "labelRight": "prop Index",
+ "footerNote": "Only give the index of the prop"
+ },
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map your Rudder Property with Delimiters for Adobe Custom properties",
+ "labelLeft": "Rudder Property",
+ "labelRight": "List Delimiter",
+ "value": "propsDelimiter",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g. phone",
+ "options": [
+ {
+ "name": "|",
+ "value": "|"
+ },
+ {
+ "name": ":",
+ "value": ":"
+ },
+ {
+ "name": ",",
+ "value": ","
+ },
+ {
+ "name": ";",
+ "value": ";"
+ },
+ {
+ "name": "/",
+ "value": "/"
+ }
+ ],
+ "defaultOption": {
+ "name": ",",
+ "value": ","
+ }
+ }
+ ]
+ },
+ {
+ "title": "Merchandise Event Level Settings",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Events to Adobe Merchandise events",
+ "value": "eventMerchEventToAdobeEvent",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g Order Completed",
+ "placeholderRight": "event1",
+ "labelLeft": "Rudder Event",
+ "labelRight": "Adobe Event"
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "eventMerchProperties",
+ "customFields": [
+ {
+ "type": "textInput",
+ "placeholder": "e.g. currency",
+ "value": "eventMerchProperties",
+ "label": "Currency/Incremental properties to add to merchandise events at event level",
+ "required": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Merchandise Product Level Settings",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Events to Adobe Merchandise events",
+ "value": "productMerchEventToAdobeEvent",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g Order Completed",
+ "placeholderRight": "event1",
+ "labelLeft": "Rudder Event",
+ "labelRight": "Adobe Event"
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "productMerchProperties",
+ "customFields": [
+ {
+ "type": "textInput",
+ "placeholder": "e.g. currency",
+ "value": "productMerchProperties",
+ "label": "Currency/Incremental properties to add to merchandise events at product level",
+ "required": false
+ }
+ ]
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder Properties to eVars at product level",
+ "value": "productMerchEvarsMap",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. product_id",
+ "placeholderRight": "2",
+ "labelLeft": "Rudder Property",
+ "labelRight": "eVar Index"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Product Identifier",
+ "value": "productIdentifier",
+ "required": false,
+ "footerNote": "Adobe Analytics only accepts a single product identifier. Use this option to choose whether we send product name, id, or sku.",
+ "options": [
+ {
+ "name": "Product Name",
+ "value": "name"
+ },
+ {
+ "name": "ID",
+ "value": "id"
+ },
+ {
+ "name": "SKU",
+ "value": "sku"
+ }
+ ],
+ "defaultOption": {
+ "name": "Product Name",
+ "value": "name"
+ }
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Consent Settings",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "oneTrustCookieCategories",
+ "label": "OneTrust Cookie Categories",
+ "customFields": [
+ {
+ "type": "textInput",
+ "placeholder": "Marketing",
+ "value": "oneTrustCookieCategory",
+ "label": "Category Name/ID",
+ "required": false
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/adroll/db-config.json b/src/configurations/destinations/adroll/db-config.json
new file mode 100644
index 000000000..be9e4fb0a
--- /dev/null
+++ b/src/configurations/destinations/adroll/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "ADROLL",
+ "displayName": "Adroll",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "advId",
+ "pixId",
+ "eventsMap",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify", "track", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "advId",
+ "pixId",
+ "eventsMap",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ },
+ "options": {
+ "isBeta": true
+ }
+}
diff --git a/data/destinations/microsoft_clarity/metadata.json b/src/configurations/destinations/adroll/metadata.json
similarity index 100%
rename from data/destinations/microsoft_clarity/metadata.json
rename to src/configurations/destinations/adroll/metadata.json
diff --git a/src/configurations/destinations/adroll/schema.json b/src/configurations/destinations/adroll/schema.json
new file mode 100644
index 000000000..49782ab03
--- /dev/null
+++ b/src/configurations/destinations/adroll/schema.json
@@ -0,0 +1,70 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["advId", "pixId"],
+ "type": "object",
+ "properties": {
+ "advId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "pixId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/adroll/ui_config.json b/src/configurations/destinations/adroll/ui-config.json
similarity index 100%
rename from data/destinations/adroll/ui_config.json
rename to src/configurations/destinations/adroll/ui-config.json
diff --git a/src/configurations/destinations/af/db-config.json b/src/configurations/destinations/af/db-config.json
new file mode 100644
index 000000000..b82f8d6b2
--- /dev/null
+++ b/src/configurations/destinations/af/db-config.json
@@ -0,0 +1,50 @@
+{
+ "name": "AF",
+ "displayName": "AppsFlyer",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "devKey",
+ "appleAppId",
+ "useRichEventName",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["track", "screen", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "devKey",
+ "sharingFilter",
+ "useRichEventName",
+ "androidAppId",
+ "appleAppId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "statusCallbackUrls",
+ "apiToken"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "reactnative": ["useNativeSDK"],
+ "cordova": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/data/destinations/olark/metadata.json b/src/configurations/destinations/af/metadata.json
similarity index 100%
rename from data/destinations/olark/metadata.json
rename to src/configurations/destinations/af/metadata.json
diff --git a/src/configurations/destinations/af/schema.json b/src/configurations/destinations/af/schema.json
new file mode 100644
index 000000000..99fa2bf89
--- /dev/null
+++ b/src/configurations/destinations/af/schema.json
@@ -0,0 +1,73 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["devKey"],
+ "properties": {
+ "devKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "androidAppId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "appleAppId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "useRichEventName": {
+ "type": "boolean"
+ },
+ "sharingFilter": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "android": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ },
+ "cordova": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/af/ui-config.json b/src/configurations/destinations/af/ui-config.json
new file mode 100644
index 000000000..6cda39f21
--- /dev/null
+++ b/src/configurations/destinations/af/ui-config.json
@@ -0,0 +1,143 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "AppsFlyer Dev Key",
+ "value": "devKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AppsFlyer Dev Key",
+ "required": true,
+ "placeholder": "e.g: bSjsdGYsOo9sjw23Shj"
+ },
+ {
+ "type": "textInput",
+ "label": "Android App ID",
+ "value": "androidAppId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Android App ID",
+ "required": false,
+ "placeholder": "com.mypackage.example",
+ "footerNote": "Field is required if os.name is set to android"
+ },
+ {
+ "type": "textInput",
+ "label": "Apple App ID",
+ "value": "appleAppId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Apple App ID",
+ "required": false,
+ "placeholder": "123456789",
+ "footerNote": "Field is required if os.name is set to any of the Apple OS names (ios, ipados, watchos, tvos etc.)"
+ },
+ {
+ "type": "checkbox",
+ "label": "Use Rich Event Names",
+ "value": "useRichEventName",
+ "footerNote": "To include screen/page name in Screen/Page event names (ex: Viewed Contacts Page)",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "label": "Sharing Filter",
+ "value": "sharingFilter",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid sharing filter. Default value is used",
+ "required": false,
+ "placeholder": "['googleadwords_int', 'adcolony_int']",
+ "default": "all",
+ "footerNote": "Use the filter to fulfill regulatory requirements like GDPR and CCPA, to comply with user opt-out mechanisms, and for other business logic reasons. "
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "User Deletion",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Status Callback Urls",
+ "value": "statusCallbackUrls",
+ "regex": "^(?!.*\\.ngrok\\.io).*$",
+ "placeholder": "https://examplecontroller.com/opengdpr_callbacks",
+ "footerNote": "Endpoint for status callbacks to be sent with the deletion request status changes. If you want to provide more than one callbacks, provide them as comma separated strings."
+ },
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiToken",
+ "placeholder": "c81aaf36-8323-4bb6-b5a8-asdfasdfas4f3c",
+ "secret": true,
+ "footerNote": "Provide your V1.0 API Token."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/airship/db-config.json b/src/configurations/destinations/airship/db-config.json
new file mode 100644
index 000000000..42ca43576
--- /dev/null
+++ b/src/configurations/destinations/airship/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "AIRSHIP",
+ "displayName": "Airship",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track", "group"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "appKey", "dataCenter"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/data/destinations/qualaroo/metadata.json b/src/configurations/destinations/airship/metadata.json
similarity index 100%
rename from data/destinations/qualaroo/metadata.json
rename to src/configurations/destinations/airship/metadata.json
diff --git a/data/sources/moengage/schema.json b/src/configurations/destinations/airship/schema.json
similarity index 100%
rename from data/sources/moengage/schema.json
rename to src/configurations/destinations/airship/schema.json
diff --git a/src/configurations/destinations/airship/ui-config.json b/src/configurations/destinations/airship/ui-config.json
new file mode 100644
index 000000000..ec3180bff
--- /dev/null
+++ b/src/configurations/destinations/airship/ui-config.json
@@ -0,0 +1,36 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
+ "secret": true,
+ "footerNote": "API Key from Settings > Tokens > Create Token"
+ },
+ {
+ "type": "textInput",
+ "label": "App Key",
+ "value": "appKey",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g. zXvp6bWcSL3muCRuGrWyUA",
+ "secret": true,
+ "footerNote": "App Key from Settings > Project Details > App Key"
+ },
+ {
+ "type": "checkbox",
+ "label": "EU data center",
+ "value": "dataCenter",
+ "default": false,
+ "footerNote": "Toggle on to send data to EU server"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/algolia/db-config.json b/src/configurations/destinations/algolia/db-config.json
new file mode 100644
index 000000000..04bdd38f2
--- /dev/null
+++ b/src/configurations/destinations/algolia/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "ALGOLIA",
+ "displayName": "Algolia",
+ "config": {
+ "cdkV2TestThreshold": 1,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "applicationId", "eventTypeSettings"]
+ },
+ "secretKeys": ["apiKey", "applicationId"]
+ }
+}
diff --git a/data/destinations/refiner/metadata.json b/src/configurations/destinations/algolia/metadata.json
similarity index 100%
rename from data/destinations/refiner/metadata.json
rename to src/configurations/destinations/algolia/metadata.json
diff --git a/data/sources/olark/schema.json b/src/configurations/destinations/algolia/schema.json
similarity index 100%
rename from data/sources/olark/schema.json
rename to src/configurations/destinations/algolia/schema.json
diff --git a/src/configurations/destinations/algolia/ui-config.json b/src/configurations/destinations/algolia/ui-config.json
new file mode 100644
index 000000000..84478a9de
--- /dev/null
+++ b/src/configurations/destinations/algolia/ui-config.json
@@ -0,0 +1,43 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Application ID",
+ "value": "applicationId",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. O2YAMMI15I",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Event Name to Event Type Mapping",
+ "labelLeft": "Event Name",
+ "labelRight": "Event Type",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "item clicked",
+ "placeholderRight": "click",
+ "value": "eventTypeSettings"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/am/db-config.json b/src/configurations/destinations/am/db-config.json
new file mode 100644
index 000000000..dccbe575f
--- /dev/null
+++ b/src/configurations/destinations/am/db-config.json
@@ -0,0 +1,131 @@
+{
+ "name": "AM",
+ "displayName": "Amplitude",
+ "config": {
+ "supportsVisualMapper": true,
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "groupTypeTrait",
+ "groupValueTrait",
+ "trackAllPages",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "traitsToIncrement",
+ "traitsToSetOnce",
+ "traitsToAppend",
+ "traitsToPrepend",
+ "trackProductsOnce",
+ "trackRevenuePerProduct",
+ "preferAnonymousIdForDeviceId",
+ "deviceIdFromUrlParam",
+ "forceHttps",
+ "trackGclid",
+ "trackReferrer",
+ "saveParamsReferrerOncePerSession",
+ "trackUtmProperties",
+ "unsetParamsReferrerOnNewSession",
+ "batchEvents",
+ "eventUploadPeriodMillis",
+ "eventUploadThreshold",
+ "versionName",
+ "enableLocationListening",
+ "useAdvertisingIdForDeviceId",
+ "trackSessionEvents",
+ "useIdfaAsDeviceId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "mapDeviceBrand"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["alias", "group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "groupTypeTrait",
+ "groupValueTrait",
+ "trackAllPages",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "traitsToIncrement",
+ "traitsToSetOnce",
+ "traitsToAppend",
+ "traitsToPrepend",
+ "trackProductsOnce",
+ "trackRevenuePerProduct",
+ "versionName",
+ "apiSecret",
+ "residencyServer",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "mapDeviceBrand"
+ ],
+ "web": [
+ "useNativeSDK",
+ "preferAnonymousIdForDeviceId",
+ "deviceIdFromUrlParam",
+ "forceHttps",
+ "trackGclid",
+ "trackReferrer",
+ "saveParamsReferrerOncePerSession",
+ "trackUtmProperties",
+ "unsetParamsReferrerOnNewSession",
+ "batchEvents",
+ "eventUploadPeriodMillis",
+ "eventUploadThreshold",
+ "oneTrustCookieCategories"
+ ],
+ "android": [
+ "eventUploadPeriodMillis",
+ "eventUploadThreshold",
+ "useNativeSDK",
+ "enableLocationListening",
+ "trackSessionEvents",
+ "useAdvertisingIdForDeviceId"
+ ],
+ "ios": [
+ "eventUploadPeriodMillis",
+ "eventUploadThreshold",
+ "useNativeSDK",
+ "trackSessionEvents",
+ "useIdfaAsDeviceId"
+ ],
+ "reactnative": [
+ "eventUploadPeriodMillis",
+ "eventUploadThreshold",
+ "useNativeSDK",
+ "enableLocationListening",
+ "trackSessionEvents",
+ "useAdvertisingIdForDeviceId",
+ "useIdfaAsDeviceId"
+ ],
+ "flutter": [
+ "eventUploadPeriodMillis",
+ "eventUploadThreshold",
+ "useNativeSDK",
+ "enableLocationListening",
+ "trackSessionEvents",
+ "useAdvertisingIdForDeviceId",
+ "useIdfaAsDeviceId"
+ ]
+ },
+ "secretKeys": ["apiKey", "apiSecret"]
+ }
+}
diff --git a/data/destinations/sendinblue/metadata.json b/src/configurations/destinations/am/metadata.json
similarity index 100%
rename from data/destinations/sendinblue/metadata.json
rename to src/configurations/destinations/am/metadata.json
diff --git a/src/configurations/destinations/am/schema.json b/src/configurations/destinations/am/schema.json
new file mode 100644
index 000000000..7d7524789
--- /dev/null
+++ b/src/configurations/destinations/am/schema.json
@@ -0,0 +1,318 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "apiSecret": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "groupTypeTrait": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "groupValueTrait": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "trackAllPages": {
+ "type": "boolean"
+ },
+ "trackCategorizedPages": {
+ "type": "boolean"
+ },
+ "trackNamedPages": {
+ "type": "boolean"
+ },
+ "trackProductsOnce": {
+ "type": "boolean"
+ },
+ "trackRevenuePerProduct": {
+ "type": "boolean"
+ },
+ "versionName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "residencyServer": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(standard|EU)$"
+ },
+ "traitsToIncrement": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "traits": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "traitsToSetOnce": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "traits": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "traitsToAppend": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "traits": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "traitsToPrepend": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "traits": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ },
+ "android": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ }
+ }
+ },
+ "preferAnonymousIdForDeviceId": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "deviceIdFromUrlParam": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "forceHttps": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "trackGclid": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "trackReferrer": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "saveParamsReferrerOncePerSession": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "trackUtmProperties": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "unsetParamsReferrerOnNewSession": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "batchEvents": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventUploadPeriodMillis": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "android": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "ios": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "reactnative": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ }
+ }
+ },
+ "eventUploadThreshold": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "android": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "ios": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "reactnative": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ }
+ }
+ },
+ "mapDeviceBrand": {
+ "type": "boolean"
+ },
+ "enableLocationListening": {
+ "type": "object",
+ "properties": {
+ "android": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ }
+ }
+ },
+ "trackSessionEvents": {
+ "type": "object",
+ "properties": {
+ "android": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ }
+ }
+ },
+ "useAdvertisingIdForDeviceId": {
+ "type": "object",
+ "properties": {
+ "android": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ }
+ }
+ },
+ "useIdfaAsDeviceId": {
+ "type": "object",
+ "properties": {
+ "ios": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/am/ui_config.json b/src/configurations/destinations/am/ui-config.json
similarity index 100%
rename from data/destinations/am/ui_config.json
rename to src/configurations/destinations/am/ui-config.json
diff --git a/src/configurations/destinations/appcenter/db-config.json b/src/configurations/destinations/appcenter/db-config.json
new file mode 100644
index 000000000..b2a5ff679
--- /dev/null
+++ b/src/configurations/destinations/appcenter/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "APPCENTER",
+ "displayName": "App Center",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "appSecret",
+ "eventPriorityMap",
+ "transmissionLevel",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["android", "ios", "reactnative", "cordova", "flutter"],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "appSecret",
+ "eventPriorityMap",
+ "transmissionLevel",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "reactnative": ["useNativeSDK"],
+ "flutter": ["useNativeSDK"],
+ "cordova": ["useNativeSDK"]
+ },
+ "secretKeys": ["appSecret"]
+ }
+}
diff --git a/data/destinations/yandex_metrica/metadata.json b/src/configurations/destinations/appcenter/metadata.json
similarity index 100%
rename from data/destinations/yandex_metrica/metadata.json
rename to src/configurations/destinations/appcenter/metadata.json
diff --git a/data/sources/pagerduty/schema.json b/src/configurations/destinations/appcenter/schema.json
similarity index 100%
rename from data/sources/pagerduty/schema.json
rename to src/configurations/destinations/appcenter/schema.json
diff --git a/src/configurations/destinations/appcenter/ui-config.json b/src/configurations/destinations/appcenter/ui-config.json
new file mode 100644
index 000000000..6ca01d302
--- /dev/null
+++ b/src/configurations/destinations/appcenter/ui-config.json
@@ -0,0 +1,120 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "AppCenter App Secret Key",
+ "value": "appSecret",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AppCenter App Secret Key",
+ "required": true,
+ "placeholder": "e.g: \u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u20225c0d",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Other Settings",
+ "fields": [
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map your Events Name with Priority",
+ "labelLeft": "Event Name",
+ "labelRight": "Priority",
+ "value": "eventPriorityMap",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "your event",
+ "options": [
+ {
+ "name": "Normal",
+ "value": "Normal"
+ },
+ {
+ "name": "Critical",
+ "value": "Critical"
+ }
+ ]
+ },
+ {
+ "type": "textInput",
+ "label": "Set the transmission interval in minutes",
+ "value": "transmissionLevel",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Transmission Level",
+ "required": false,
+ "placeholder": "10"
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "defaultCheckbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/appcues/db-config.json b/src/configurations/destinations/appcues/db-config.json
new file mode 100644
index 000000000..31308b0e9
--- /dev/null
+++ b/src/configurations/destinations/appcues/db-config.json
@@ -0,0 +1,40 @@
+{
+ "name": "APPCUES",
+ "displayName": "Appcues",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accountId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/appcues/metadata.json b/src/configurations/destinations/appcues/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/appcues/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/sources/pipedream/schema.json b/src/configurations/destinations/appcues/schema.json
similarity index 100%
rename from data/sources/pipedream/schema.json
rename to src/configurations/destinations/appcues/schema.json
diff --git a/data/destinations/appcues/ui_config.json b/src/configurations/destinations/appcues/ui-config.json
similarity index 100%
rename from data/destinations/appcues/ui_config.json
rename to src/configurations/destinations/appcues/ui-config.json
diff --git a/src/configurations/destinations/attentive_tag/db-config.json b/src/configurations/destinations/attentive_tag/db-config.json
new file mode 100644
index 000000000..445bc5b1f
--- /dev/null
+++ b/src/configurations/destinations/attentive_tag/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "ATTENTIVE_TAG",
+ "displayName": "Attentive Tag",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "signUpSourceId"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/attentive_tag/metadata.json b/src/configurations/destinations/attentive_tag/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/attentive_tag/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/attentive_tag/schema.json b/src/configurations/destinations/attentive_tag/schema.json
new file mode 100644
index 000000000..07125006c
--- /dev/null
+++ b/src/configurations/destinations/attentive_tag/schema.json
@@ -0,0 +1,17 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "signUpSourceId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/attentive_tag/ui-config.json b/src/configurations/destinations/attentive_tag/ui-config.json
new file mode 100644
index 000000000..d7f5ee419
--- /dev/null
+++ b/src/configurations/destinations/attentive_tag/ui-config.json
@@ -0,0 +1,31 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g. saDbFeVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENpNUlZ",
+ "secret": true,
+ "footerNote": "Your API Key"
+ },
+ {
+ "type": "textInput",
+ "label": "Sign Up Source Id",
+ "value": "signUpSourceId",
+ "regex": "^[0-9]+$",
+ "regexErrorMessage": "Invalid Sign Up Source Id",
+ "required": false,
+ "placeholder": "e.g: 123456",
+ "secret": false,
+ "footerNote": "Your Sign Up Source Id"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/attribution/db-config.json b/src/configurations/destinations/attribution/db-config.json
new file mode 100644
index 000000000..77f746773
--- /dev/null
+++ b/src/configurations/destinations/attribution/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "ATTRIBUTION",
+ "displayName": "Attribution",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "warehouse",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["alias", "group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["writeKey"],
+ "web": []
+ },
+ "secretKeys": ["writeKey"]
+ }
+}
diff --git a/src/configurations/destinations/attribution/metadata.json b/src/configurations/destinations/attribution/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/attribution/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/attribution/schema.json b/src/configurations/destinations/attribution/schema.json
new file mode 100644
index 000000000..4100d0c70
--- /dev/null
+++ b/src/configurations/destinations/attribution/schema.json
@@ -0,0 +1,14 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["writeKey"],
+ "properties": {
+ "writeKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/attribution/ui-config.json b/src/configurations/destinations/attribution/ui-config.json
new file mode 100644
index 000000000..f43c0e594
--- /dev/null
+++ b/src/configurations/destinations/attribution/ui-config.json
@@ -0,0 +1,18 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Attribution Project Key",
+ "value": "writeKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Attribution Project Key",
+ "required": true,
+ "placeholder": "e.g: AGzp7K9cBV"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/autopilot/db-config.json b/src/configurations/destinations/autopilot/db-config.json
new file mode 100644
index 000000000..b00e45898
--- /dev/null
+++ b/src/configurations/destinations/autopilot/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "AUTOPILOT",
+ "displayName": "Autopilot",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "triggerId"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/autopilot/metadata.json b/src/configurations/destinations/autopilot/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/autopilot/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/sources/refiner/schema.json b/src/configurations/destinations/autopilot/schema.json
similarity index 100%
rename from data/sources/refiner/schema.json
rename to src/configurations/destinations/autopilot/schema.json
diff --git a/src/configurations/destinations/autopilot/ui-config.json b/src/configurations/destinations/autopilot/ui-config.json
new file mode 100644
index 000000000..c906f7e3f
--- /dev/null
+++ b/src/configurations/destinations/autopilot/ui-config.json
@@ -0,0 +1,27 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g: 1d6583b196d34de28a3g19ahadde4b0z"
+ },
+ {
+ "type": "textInput",
+ "label": "Trigger Id",
+ "value": "triggerId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Trigger Id",
+ "required": true,
+ "placeholder": "e.g: 00XX"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/awin/db_config.json b/src/configurations/destinations/awin/db-config.json
similarity index 100%
rename from data/destinations/awin/db_config.json
rename to src/configurations/destinations/awin/db-config.json
diff --git a/src/configurations/destinations/awin/metadata.json b/src/configurations/destinations/awin/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/awin/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/awin/schema.json b/src/configurations/destinations/awin/schema.json
similarity index 100%
rename from data/destinations/awin/schema.json
rename to src/configurations/destinations/awin/schema.json
diff --git a/data/destinations/awin/ui_config.json b/src/configurations/destinations/awin/ui-config.json
similarity index 100%
rename from data/destinations/awin/ui_config.json
rename to src/configurations/destinations/awin/ui-config.json
diff --git a/data/destinations/axeptio/db_config.json b/src/configurations/destinations/axeptio/db-config.json
similarity index 100%
rename from data/destinations/axeptio/db_config.json
rename to src/configurations/destinations/axeptio/db-config.json
diff --git a/src/configurations/destinations/axeptio/metadata.json b/src/configurations/destinations/axeptio/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/axeptio/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/axeptio/schema.json b/src/configurations/destinations/axeptio/schema.json
similarity index 100%
rename from data/destinations/axeptio/schema.json
rename to src/configurations/destinations/axeptio/schema.json
diff --git a/data/destinations/axeptio/ui_config.json b/src/configurations/destinations/axeptio/ui-config.json
similarity index 100%
rename from data/destinations/axeptio/ui_config.json
rename to src/configurations/destinations/axeptio/ui-config.json
diff --git a/src/configurations/destinations/azure_blob/db-config.json b/src/configurations/destinations/azure_blob/db-config.json
new file mode 100644
index 000000000..2900d01ed
--- /dev/null
+++ b/src/configurations/destinations/azure_blob/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "AZURE_BLOB",
+ "displayName": "Azure Blob Storage",
+ "config": {
+ "transformAt": "none",
+ "transformAtV1": "none",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "containerName",
+ "prefix",
+ "accountName",
+ "accountKey",
+ "useSASTokens",
+ "sasToken"
+ ]
+ },
+ "secretKeys": ["accountKey", "sasToken"]
+ }
+}
diff --git a/src/configurations/destinations/azure_blob/metadata.json b/src/configurations/destinations/azure_blob/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/azure_blob/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/sources/satismeter/schema.json b/src/configurations/destinations/azure_blob/schema.json
similarity index 100%
rename from data/sources/satismeter/schema.json
rename to src/configurations/destinations/azure_blob/schema.json
diff --git a/src/configurations/destinations/azure_blob/ui-config.json b/src/configurations/destinations/azure_blob/ui-config.json
new file mode 100644
index 000000000..c681a7dd6
--- /dev/null
+++ b/src/configurations/destinations/azure_blob/ui-config.json
@@ -0,0 +1,75 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Azure Blob Storage Container Name",
+ "value": "containerName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-blob-event-logs"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "textInput",
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "placeholder": "e.g: account-key",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/azure_datalake/db-config.json b/src/configurations/destinations/azure_datalake/db-config.json
new file mode 100644
index 000000000..97788b8da
--- /dev/null
+++ b/src/configurations/destinations/azure_datalake/db-config.json
@@ -0,0 +1,39 @@
+{
+ "name": "AZURE_DATALAKE",
+ "displayName": "Azure Datalake",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "containerName",
+ "prefix",
+ "namespace",
+ "accountName",
+ "accountKey",
+ "useSASTokens",
+ "sasToken",
+ "syncFrequency",
+ "syncStartAt"
+ ]
+ },
+ "secretKeys": ["accountKey", "sasToken"]
+ }
+}
diff --git a/src/configurations/destinations/azure_datalake/metadata.json b/src/configurations/destinations/azure_datalake/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/azure_datalake/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/azure_datalake/schema.json b/src/configurations/destinations/azure_datalake/schema.json
new file mode 100644
index 000000000..8d2f93f35
--- /dev/null
+++ b/src/configurations/destinations/azure_datalake/schema.json
@@ -0,0 +1,57 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["containerName", "accountName"],
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ }
+ },
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSASTokens", "sasToken"]
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/azure_datalake/ui-config.json b/src/configurations/destinations/azure_datalake/ui-config.json
new file mode 100644
index 000000000..c88e83c7b
--- /dev/null
+++ b/src/configurations/destinations/azure_datalake/ui-config.json
@@ -0,0 +1,136 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Azure Blob Storage Container Name",
+ "labelNote": "Container to store your event data",
+ "value": "containerName",
+ "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
+ "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-event-logs",
+ "footerNote": "Please make sure the container exists in your Azure Blob Storage"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "labelNote": "If configured, all data pushed by rudderstack will be at https://.blob.core.windows.net///",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "labelNote": "Schema name for the warehouse where the tables are created",
+ "value": "namespace",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "regexErrorMessage": "Invalid Namespace",
+ "required": false,
+ "placeholder": "e.g: RUDDER_NAMESPACE",
+ "footerNote": "All data for the destination would be pushed to https://.blob.core.windows.net///rudder-datalake/."
+ },
+ {
+ "type": "textInput",
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/azure_event_hub/db-config.json b/src/configurations/destinations/azure_event_hub/db-config.json
new file mode 100644
index 000000000..63fc7679d
--- /dev/null
+++ b/src/configurations/destinations/azure_event_hub/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "AZURE_EVENT_HUB",
+ "displayName": "Azure Event Hubs",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["bootstrapServer", "topic", "eventHubsConnectionString"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/azure_event_hub/metadata.json b/src/configurations/destinations/azure_event_hub/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/azure_event_hub/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/azure_event_hub/schema.json b/src/configurations/destinations/azure_event_hub/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/azure_event_hub/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/azure_event_hub/ui-config.json b/src/configurations/destinations/azure_event_hub/ui-config.json
new file mode 100644
index 000000000..8c655ad45
--- /dev/null
+++ b/src/configurations/destinations/azure_event_hub/ui-config.json
@@ -0,0 +1,36 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Bootstrap server",
+ "value": "bootstrapServer",
+ "regex": "^.*:[0-9]{1,5}$",
+ "regexErrorMessage": "Invalid Bootstrap server",
+ "required": true,
+ "placeholder": "e.g: NAMESPACENAME.servicebus.windows.net:9093"
+ },
+ {
+ "type": "textInput",
+ "label": "Topic Name",
+ "value": "topic",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Topic Name",
+ "required": true,
+ "placeholder": "e.g: test-topic"
+ },
+ {
+ "type": "textInput",
+ "label": "Event Hubs ConnectionString",
+ "value": "eventHubsConnectionString",
+ "regex": "^(.{0,300})$",
+ "regexErrorMessage": "Invalid Event Hubs ConnectionString",
+ "required": true,
+ "placeholder": "e.g: Endpoint=sb://..."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/azure_synapse/db-config.json b/src/configurations/destinations/azure_synapse/db-config.json
new file mode 100644
index 000000000..44a69640f
--- /dev/null
+++ b/src/configurations/destinations/azure_synapse/db-config.json
@@ -0,0 +1,63 @@
+{
+ "name": "AZURE_SYNAPSE",
+ "displayName": "Azure Synapse",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "host",
+ "database",
+ "user",
+ "password",
+ "port",
+ "sslMode",
+ "namespace",
+ "bucketProvider",
+ "bucketName",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "accountName",
+ "accountKey",
+ "useSASTokens",
+ "sasToken",
+ "credentials",
+ "secretAccessKey",
+ "useSSL",
+ "containerName",
+ "endPoint",
+ "syncFrequency",
+ "syncStartAt",
+ "excludeWindow",
+ "useRudderStorage"
+ ]
+ },
+ "secretKeys": [
+ "password",
+ "accessKeyID",
+ "accessKey",
+ "accountKey",
+ "sasToken",
+ "secretAccessKey",
+ "credentials"
+ ]
+ }
+}
diff --git a/src/configurations/destinations/azure_synapse/metadata.json b/src/configurations/destinations/azure_synapse/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/azure_synapse/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/azure_synapse/schema.json b/src/configurations/destinations/azure_synapse/schema.json
new file mode 100644
index 000000000..e28a09699
--- /dev/null
+++ b/src/configurations/destinations/azure_synapse/schema.json
@@ -0,0 +1,238 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": [
+ "host",
+ "database",
+ "user",
+ "password",
+ "port",
+ "sslMode",
+ "syncFrequency",
+ "useRudderStorage"
+ ],
+ "properties": {
+ "host": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "database": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "user": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "port": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "sslMode": {
+ "type": "string",
+ "pattern": "^(disable|true|false)$"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "useRudderStorage": {
+ "type": "boolean",
+ "default": false
+ },
+ "bucketProvider": {
+ "type": "string",
+ "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["useRudderStorage"]
+ },
+ "then": {
+ "required": ["bucketProvider"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "S3"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ },
+ "required": ["bucketName", "accessKeyID", "accessKey"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "GCS"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["bucketName", "credentials"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "AZURE_BLOB"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["containerName", "accountName"],
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSASTokens", "sasToken"]
+ }
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "MINIO"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "endPoint": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "secretAccessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "useSSL": {
+ "type": "boolean"
+ }
+ },
+ "required": ["bucketName", "endPoint", "accessKeyID", "secretAccessKey", "useSSL"]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/azure_synapse/ui-config.json b/src/configurations/destinations/azure_synapse/ui-config.json
new file mode 100644
index 000000000..a097958b3
--- /dev/null
+++ b/src/configurations/destinations/azure_synapse/ui-config.json
@@ -0,0 +1,547 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid Host",
+ "placeholder": "e.g: azure-synapse.mydomain.com",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "database",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Database",
+ "placeholder": "e.g: rudderdb",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid User",
+ "placeholder": "e.g: rudder",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "placeholder": "e.g: rudder-password",
+ "regex": ".*",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Port",
+ "placeholder": "1433",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "labelNote": "Schema name for the warehouse where the tables are created",
+ "value": "namespace",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "regexErrorMessage": "Invalid Namespace",
+ "required": false,
+ "placeholder": "e.g: rudder-schema",
+ "footerNote": "Default will be the source name"
+ },
+ {
+ "type": "singleSelect",
+ "label": "SSL Mode",
+ "value": "sslMode",
+ "options": [
+ {
+ "name": "disable",
+ "value": "disable"
+ },
+ {
+ "name": "true",
+ "value": "true"
+ },
+ {
+ "name": "false",
+ "value": "false"
+ }
+ ],
+ "defaultOption": {
+ "name": "disable",
+ "value": "disable"
+ },
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ },
+ {
+ "type": "timeRangePicker",
+ "label": "Exclude window (Optional)",
+ "value": "excludeWindow",
+ "startTime": {
+ "label": "start time",
+ "value": "excludeWindowStartTime"
+ },
+ "endTime": {
+ "label": "end time",
+ "value": "excludeWindowEndTime"
+ },
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 1
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ },
+ {
+ "title": "Object Storage Configuration",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use RudderStack managed object storage",
+ "value": "useRudderStorage",
+ "default": false,
+ "footerNote": "Note: Only available for RudderStack managed data planes"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Choose your Storage Provider",
+ "value": "bucketProvider",
+ "options": [
+ {
+ "name": "S3",
+ "value": "S3"
+ },
+ {
+ "name": "GCS",
+ "value": "GCS"
+ },
+ {
+ "name": "AZURE_BLOB",
+ "value": "AZURE_BLOB"
+ },
+ {
+ "name": "MINIO",
+ "value": "MINIO"
+ }
+ ],
+ "defaultOption": {
+ "name": "MINIO",
+ "value": "MINIO"
+ },
+ "required": true,
+ "preRequisiteField": {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging S3 Storage Bucket Name",
+ "labelNote": "S3 Bucket to store data before loading into AzureSynapse",
+ "value": "bucketName",
+ "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
+ "placeholder": "e.g: s3-event-logs",
+ "required": true,
+ "footerNote": "Please make sure the bucket exists in your S3"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging GCS Object Storage Bucket Name",
+ "labelNote": "GCS Bucket to store data before loading into AzureSynapse",
+ "value": "bucketName",
+ "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
+ "placeholder": "e.g: gcs-event-logs",
+ "required": true,
+ "footerNote": "Please make sure the bucket exists in your GCS"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging Azure Blob Storage Container Name",
+ "labelNote": "Container to store data before loading into AzureSynapse",
+ "value": "containerName",
+ "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
+ "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-event-logs",
+ "footerNote": "Please make sure the container exists in your Azure Blob Storage"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging MINIO Storage Bucket Name",
+ "labelNote": "MINIO Bucket to store data before loading into AzureSynapse",
+ "value": "bucketName",
+ "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: minio-event-logs",
+ "footerNote": "Please make sure the bucket exists in your MINIO"
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ }
+ ],
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MinIO Endpoint",
+ "value": "endPoint",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Endpoint",
+ "required": true,
+ "placeholder": "e.g: play.min.io:9000"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MINIO Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MINIO Secret Access Key",
+ "value": "secretAccessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key"
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use SSL for connection",
+ "value": "useSSL",
+ "default": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/bingads/db-config.json b/src/configurations/destinations/bingads/db-config.json
new file mode 100644
index 000000000..0302f6e2f
--- /dev/null
+++ b/src/configurations/destinations/bingads/db-config.json
@@ -0,0 +1,23 @@
+{
+ "name": "BINGADS",
+ "displayName": "Bing Ads",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [
+ "tagID",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": ["tagID", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["tagID"]
+ }
+}
diff --git a/src/configurations/destinations/bingads/metadata.json b/src/configurations/destinations/bingads/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/bingads/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/bingads/schema.json b/src/configurations/destinations/bingads/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/bingads/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/bingads/ui_config.json b/src/configurations/destinations/bingads/ui-config.json
similarity index 100%
rename from data/destinations/bingads/ui_config.json
rename to src/configurations/destinations/bingads/ui-config.json
diff --git a/src/configurations/destinations/blueshift/db-config.json b/src/configurations/destinations/blueshift/db-config.json
new file mode 100644
index 000000000..8b6334307
--- /dev/null
+++ b/src/configurations/destinations/blueshift/db-config.json
@@ -0,0 +1,17 @@
+{
+ "name": "BLUESHIFT",
+ "displayName": "Blueshift",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web", "cloud", "mobile"],
+ "supportedMessageTypes": ["identify", "track", "group"],
+ "destConfig": {
+ "defaultConfig": ["eventApiKey", "usersApiKey", "dataCenter"]
+ },
+ "secretKeys": ["eventApiKey", "usersApiKey"]
+ }
+}
diff --git a/src/configurations/destinations/blueshift/metadata.json b/src/configurations/destinations/blueshift/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/blueshift/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/blueshift/schema.json b/src/configurations/destinations/blueshift/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/blueshift/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/blueshift/ui-config.json b/src/configurations/destinations/blueshift/ui-config.json
new file mode 100644
index 000000000..b05e78ec5
--- /dev/null
+++ b/src/configurations/destinations/blueshift/ui-config.json
@@ -0,0 +1,50 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Event API Key",
+ "value": "eventApiKey",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g. b4a29aba5e75dkjc8a18acd920ec1e2e",
+ "secret": true,
+ "footerNote": "Event API Key from Account Settings > API Keys"
+ },
+ {
+ "type": "textInput",
+ "label": "Users API Key",
+ "value": "usersApiKey",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g. lko89aba5e75d99c8a18acd920ec1e2e",
+ "secret": true,
+ "footerNote": "Users API Key from Account Settings > API Keys"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Data Center",
+ "value": "dataCenter",
+ "mode": "single",
+ "options": [
+ {
+ "name": "Standard",
+ "value": "standard"
+ },
+ {
+ "name": "EU",
+ "value": "eu"
+ }
+ ],
+ "defaultOption": {
+ "name": "Standard",
+ "value": "standard"
+ },
+ "footerNote": "Select your Blueshift Data Center"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/bq/db-config.json b/src/configurations/destinations/bq/db-config.json
new file mode 100644
index 000000000..bfd6141ca
--- /dev/null
+++ b/src/configurations/destinations/bq/db-config.json
@@ -0,0 +1,39 @@
+{
+ "name": "BQ",
+ "displayName": "BigQuery",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "project",
+ "location",
+ "bucketName",
+ "credentials",
+ "prefix",
+ "namespace",
+ "syncFrequency",
+ "syncStartAt",
+ "excludeWindow",
+ "jsonPaths"
+ ]
+ },
+ "secretKeys": ["credentials"]
+ }
+}
diff --git a/src/configurations/destinations/bq/metadata.json b/src/configurations/destinations/bq/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/bq/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/bq/schema.json b/src/configurations/destinations/bq/schema.json
new file mode 100644
index 000000000..6dff45d92
--- /dev/null
+++ b/src/configurations/destinations/bq/schema.json
@@ -0,0 +1,58 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["project", "bucketName", "credentials", "syncFrequency"],
+ "properties": {
+ "project": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "location": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "jsonPaths": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ }
+ },
+ "additionalProperties": true
+ }
+}
diff --git a/data/destinations/bq/ui_config.json b/src/configurations/destinations/bq/ui-config.json
similarity index 100%
rename from data/destinations/bq/ui_config.json
rename to src/configurations/destinations/bq/ui-config.json
diff --git a/src/configurations/destinations/bqstream/db-config.json b/src/configurations/destinations/bqstream/db-config.json
new file mode 100644
index 000000000..5f976655a
--- /dev/null
+++ b/src/configurations/destinations/bqstream/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "BQSTREAM",
+ "displayName": "BigQuery Stream",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedMessageTypes": ["track"],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "destConfig": {
+ "defaultConfig": ["datasetId", "tableId", "projectId", "credentials", "insertId"]
+ },
+ "secretKeys": ["credentials"]
+ }
+}
diff --git a/src/configurations/destinations/bqstream/metadata.json b/src/configurations/destinations/bqstream/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/bqstream/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/bqstream/schema.json b/src/configurations/destinations/bqstream/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/bqstream/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/bqstream/ui-config.json b/src/configurations/destinations/bqstream/ui-config.json
new file mode 100644
index 000000000..5bad287e0
--- /dev/null
+++ b/src/configurations/destinations/bqstream/ui-config.json
@@ -0,0 +1,49 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Project Id",
+ "value": "projectId",
+ "required": true,
+ "placeholder": "my-project-id"
+ },
+ {
+ "type": "textInput",
+ "label": "Dataset Id",
+ "value": "datasetId",
+ "required": true,
+ "placeholder": "my-dataset-id"
+ },
+ {
+ "type": "textInput",
+ "label": "Table Id",
+ "value": "tableId",
+ "required": true,
+ "placeholder": "my-table-id"
+ },
+ {
+ "type": "textInput",
+ "label": "Insert Id",
+ "labelNote": "Map a column from your payload to enable best effort de-duplication by Google",
+ "value": "insertId",
+ "required": false,
+ "placeholder": "mapped-column-name"
+ },
+ {
+ "type": "textareaInput",
+ "subType": "JSON",
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your BigQuery database",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'BigQuery User'",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/branch/db-config.json b/src/configurations/destinations/branch/db-config.json
new file mode 100644
index 000000000..d14d2dd74
--- /dev/null
+++ b/src/configurations/destinations/branch/db-config.json
@@ -0,0 +1,35 @@
+{
+ "name": "BRANCH",
+ "displayName": "Branch Metrics",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": ["branchKey", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "branchKey",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/branch/metadata.json b/src/configurations/destinations/branch/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/branch/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/branch/schema.json b/src/configurations/destinations/branch/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/branch/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/branch/ui-config.json b/src/configurations/destinations/branch/ui-config.json
new file mode 100644
index 000000000..4c849fbb1
--- /dev/null
+++ b/src/configurations/destinations/branch/ui-config.json
@@ -0,0 +1,84 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Branch Key",
+ "value": "branchKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Branch Key",
+ "required": true,
+ "placeholder": "e.g: key_live_mfMJCn7WLNeXte2aZIDOeobdrvmbZpgD"
+ }
+ ]
+ },
+ {
+ "title": "2. Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "3. Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/braze/db-config.json b/src/configurations/destinations/braze/db-config.json
new file mode 100644
index 000000000..18d3de411
--- /dev/null
+++ b/src/configurations/destinations/braze/db-config.json
@@ -0,0 +1,58 @@
+{
+ "name": "BRAZE",
+ "displayName": "Braze",
+ "config": {
+ "isAudienceSupported": true,
+ "supportsVisualMapper": true,
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "appKey",
+ "dataCenter",
+ "trackAnonymousUser",
+ "enableSubscriptionGroupInGroupCall",
+ "enableLoggingToConsole",
+ "enableNestedArrayOperations",
+ "supportDedup",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "appKey",
+ "dataCenter",
+ "restApiKey",
+ "trackAnonymousUser",
+ "enableSubscriptionGroupInGroupCall",
+ "enableNestedArrayOperations",
+ "blacklistedEvents",
+ "trackAnonymousUser",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK", "supportDedup"],
+ "ios": ["useNativeSDK", "supportDedup"],
+ "reactnative": ["useNativeSDK"],
+ "flutter": ["useNativeSDK"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories", "supportDedup"]
+ },
+ "secretKeys": ["restApiKey"]
+ }
+}
diff --git a/src/configurations/destinations/braze/metadata.json b/src/configurations/destinations/braze/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/braze/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/braze/schema.json b/src/configurations/destinations/braze/schema.json
new file mode 100644
index 000000000..abda2ae66
--- /dev/null
+++ b/src/configurations/destinations/braze/schema.json
@@ -0,0 +1,109 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["appKey", "restApiKey", "dataCenter"],
+ "type": "object",
+ "properties": {
+ "appKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "restApiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "dataCenter": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "trackAnonymousUser": {
+ "type": "boolean"
+ },
+ "enableSubscriptionGroupInGroupCall": {
+ "type": "boolean"
+ },
+ "enableLoggingToConsole": {
+ "type": "boolean"
+ },
+ "enableNestedArrayOperations": {
+ "type": "boolean"
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "android": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ },
+ "reactnative": {
+ "type": "boolean"
+ },
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "supportDedup": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ },
+ "android": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,300})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/braze/ui_config.json b/src/configurations/destinations/braze/ui-config.json
similarity index 100%
rename from data/destinations/braze/ui_config.json
rename to src/configurations/destinations/braze/ui-config.json
diff --git a/src/configurations/destinations/bugsnag/db-config.json b/src/configurations/destinations/bugsnag/db-config.json
new file mode 100644
index 000000000..11b2404ee
--- /dev/null
+++ b/src/configurations/destinations/bugsnag/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "BUGSNAG",
+ "displayName": "Bugsnag",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "releaseStage",
+ "ssl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["android", "ios", "web"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "web": ["useNativeSDK", "releaseStage", "ssl", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/bugsnag/metadata.json b/src/configurations/destinations/bugsnag/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/bugsnag/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/bugsnag/schema.json b/src/configurations/destinations/bugsnag/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/bugsnag/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/bugsnag/ui_config.json b/src/configurations/destinations/bugsnag/ui-config.json
similarity index 100%
rename from data/destinations/bugsnag/ui_config.json
rename to src/configurations/destinations/bugsnag/ui-config.json
diff --git a/data/destinations/campaign_manager/db_config.json b/src/configurations/destinations/campaign_manager/db-config.json
similarity index 100%
rename from data/destinations/campaign_manager/db_config.json
rename to src/configurations/destinations/campaign_manager/db-config.json
diff --git a/src/configurations/destinations/campaign_manager/metadata.json b/src/configurations/destinations/campaign_manager/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/campaign_manager/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/campaign_manager/schema.json b/src/configurations/destinations/campaign_manager/schema.json
new file mode 100644
index 000000000..854b7e520
--- /dev/null
+++ b/src/configurations/destinations/campaign_manager/schema.json
@@ -0,0 +1,25 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["profileId"],
+ "properties": {
+ "profileId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,50})$"
+ },
+ "limitAdTracking": {
+ "type": "boolean"
+ },
+ "childDirectedTreatment": {
+ "type": "boolean"
+ },
+ "nonPersonalizedAd": {
+ "type": "boolean"
+ },
+ "treatmentForUnderage": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/campaign_manager/ui-config.json b/src/configurations/destinations/campaign_manager/ui-config.json
new file mode 100644
index 000000000..765cc4030
--- /dev/null
+++ b/src/configurations/destinations/campaign_manager/ui-config.json
@@ -0,0 +1,52 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Profile ID",
+ "value": "profileId",
+ "regex": "^(.{1,50})$",
+ "regexErrorMessage": "Length of Profile ID must be below 50 characters.",
+ "required": true,
+ "secret": false,
+ "placeholder": "e.g: 641234",
+ "footerNote": "User profile ID associated with request."
+ },
+ {
+ "type": "checkbox",
+ "label": "Limit ad tracking",
+ "value": "limitAdTracking",
+ "required": false,
+ "default": false,
+ "footerNote": "When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing."
+ },
+ {
+ "type": "checkbox",
+ "label": "Child directed treatment",
+ "value": "childDirectedTreatment",
+ "required": false,
+ "default": false,
+ "footerNote": "Whether this particular request may come from a user under the age of 13, under COPPA compliance."
+ },
+ {
+ "type": "checkbox",
+ "label": "Non personalized ad",
+ "value": "nonPersonalizedAd",
+ "required": false,
+ "default": false,
+ "footerNote": "Whether the conversion was for a non personalized ad."
+ },
+ {
+ "type": "checkbox",
+ "label": "Treatment for underage",
+ "value": "treatmentForUnderage",
+ "required": false,
+ "default": false,
+ "footerNote": "Whether this particular request may come from a user under the age of 16 (may differ by country), under compliance with the European Union's General Data Protection Regulation (GDPR)."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/candu/db-config.json b/src/configurations/destinations/candu/db-config.json
new file mode 100644
index 000000000..d0da9f9c0
--- /dev/null
+++ b/src/configurations/destinations/candu/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "CANDU",
+ "displayName": "Candu",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/candu/metadata.json b/src/configurations/destinations/candu/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/candu/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/candu/schema.json b/src/configurations/destinations/candu/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/candu/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/candu/ui-config.json b/src/configurations/destinations/candu/ui-config.json
new file mode 100644
index 000000000..2c516748d
--- /dev/null
+++ b/src/configurations/destinations/candu/ui-config.json
@@ -0,0 +1,18 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: FXLkULEhGJyvmZ4",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/canny/db-config.json b/src/configurations/destinations/canny/db-config.json
new file mode 100644
index 000000000..5c1fcc5cd
--- /dev/null
+++ b/src/configurations/destinations/canny/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "CANNY",
+ "displayName": "Canny",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey", "eventsToEvents"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "eventsToEvents"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/canny/metadata.json b/src/configurations/destinations/canny/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/canny/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/canny/schema.json b/src/configurations/destinations/canny/schema.json
new file mode 100644
index 000000000..753d8a294
--- /dev/null
+++ b/src/configurations/destinations/canny/schema.json
@@ -0,0 +1,29 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "eventsToEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/canny/ui-config.json b/src/configurations/destinations/canny/ui-config.json
new file mode 100644
index 000000000..09e086a66
--- /dev/null
+++ b/src/configurations/destinations/canny/ui-config.json
@@ -0,0 +1,45 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "API Key should be less than 100 characters",
+ "required": true,
+ "placeholder": "e.g. 4ac23-drfgbef-hb233j-9034-7dgfeb6y",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "dynamicSelectForm",
+ "label": "Mapping to trigger Canny Events for the respective Event",
+ "labelLeft": "Event Name",
+ "labelRight": "Canny Events",
+ "value": "eventsToEvents",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g: Submit",
+ "options": [
+ {
+ "name": "Create Post",
+ "value": "createPost"
+ },
+ {
+ "name": "Create Vote",
+ "value": "createVote"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/chartbeat/db-config.json b/src/configurations/destinations/chartbeat/db-config.json
new file mode 100644
index 000000000..7d7384136
--- /dev/null
+++ b/src/configurations/destinations/chartbeat/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "CHARTBEAT",
+ "displayName": "Chartbeat",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "domain",
+ "uid",
+ "sendNameAndCategoryAsTitle",
+ "video",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "domain",
+ "uid",
+ "sendNameAndCategoryAsTitle",
+ "video",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/chartbeat/metadata.json b/src/configurations/destinations/chartbeat/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/chartbeat/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/chartbeat/schema.json b/src/configurations/destinations/chartbeat/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/chartbeat/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/chartbeat/ui_config.json b/src/configurations/destinations/chartbeat/ui-config.json
similarity index 100%
rename from data/destinations/chartbeat/ui_config.json
rename to src/configurations/destinations/chartbeat/ui-config.json
diff --git a/src/configurations/destinations/clevertap/db-config.json b/src/configurations/destinations/clevertap/db-config.json
new file mode 100644
index 000000000..9a3f8a955
--- /dev/null
+++ b/src/configurations/destinations/clevertap/db-config.json
@@ -0,0 +1,53 @@
+{
+ "name": "CLEVERTAP",
+ "displayName": "CleverTap",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accountId",
+ "accountToken",
+ "passcode",
+ "region",
+ "trackAnonymous",
+ "enableObjectIdMapping",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "accountToken",
+ "passcode",
+ "region",
+ "trackAnonymous",
+ "enableObjectIdMapping",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "reactnative": ["useNativeSDK"]
+ },
+ "secretKeys": ["passcode"]
+ }
+}
diff --git a/src/configurations/destinations/clevertap/metadata.json b/src/configurations/destinations/clevertap/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/clevertap/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/clevertap/schema.json b/src/configurations/destinations/clevertap/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/clevertap/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/clevertap/ui_config.json b/src/configurations/destinations/clevertap/ui-config.json
similarity index 100%
rename from data/destinations/clevertap/ui_config.json
rename to src/configurations/destinations/clevertap/ui-config.json
diff --git a/src/configurations/destinations/clickhouse/db-config.json b/src/configurations/destinations/clickhouse/db-config.json
new file mode 100644
index 000000000..bcc0183d7
--- /dev/null
+++ b/src/configurations/destinations/clickhouse/db-config.json
@@ -0,0 +1,67 @@
+{
+ "name": "CLICKHOUSE",
+ "displayName": "ClickHouse",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "excludeKeys": [],
+ "includeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "host",
+ "database",
+ "cluster",
+ "user",
+ "password",
+ "port",
+ "bucketName",
+ "bucketProvider",
+ "containerName",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "accountKey",
+ "useSASTokens",
+ "sasToken",
+ "accountName",
+ "credentials",
+ "secretAccessKey",
+ "useSSL",
+ "endPoint",
+ "prefix",
+ "syncFrequency",
+ "syncStartAt",
+ "enableSSE",
+ "secure",
+ "skipVerify",
+ "caCertificate",
+ "excludeWindow",
+ "useRudderStorage"
+ ]
+ },
+ "secretKeys": [
+ "password",
+ "accessKeyID",
+ "accessKey",
+ "accountKey",
+ "sasToken",
+ "secretAccessKey",
+ "credentials"
+ ]
+ }
+}
diff --git a/src/configurations/destinations/clickhouse/metadata.json b/src/configurations/destinations/clickhouse/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/clickhouse/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/clickhouse/schema.json b/src/configurations/destinations/clickhouse/schema.json
new file mode 100644
index 000000000..9931b341f
--- /dev/null
+++ b/src/configurations/destinations/clickhouse/schema.json
@@ -0,0 +1,249 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["host", "port", "database", "user", "secure", "syncFrequency", "useRudderStorage"],
+ "properties": {
+ "host": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "port": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "database": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "cluster": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "user": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "secure": {
+ "type": "boolean",
+ "default": false
+ },
+ "skipVerify": {
+ "type": "boolean"
+ },
+ "caCertificate": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "useRudderStorage": {
+ "type": "boolean",
+ "default": false
+ },
+ "bucketProvider": {
+ "type": "string",
+ "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "secure": {
+ "const": true
+ }
+ },
+ "required": ["secure"]
+ },
+ "then": {
+ "required": ["skipVerify"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["useRudderStorage"]
+ },
+ "then": {
+ "required": ["bucketProvider"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "S3"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ },
+ "required": ["bucketName", "accessKeyID", "accessKey"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "GCS"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["bucketName", "credentials"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "AZURE_BLOB"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["containerName", "accountName"],
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSASTokens", "sasToken"]
+ }
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "MINIO"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "endPoint": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "secretAccessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "useSSL": {
+ "type": "boolean"
+ }
+ },
+ "required": ["bucketName", "endPoint", "accessKeyID", "secretAccessKey", "useSSL"]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/clickhouse/ui-config.json b/src/configurations/destinations/clickhouse/ui-config.json
new file mode 100644
index 000000000..d4a2ed0c9
--- /dev/null
+++ b/src/configurations/destinations/clickhouse/ui-config.json
@@ -0,0 +1,552 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$$",
+ "regexErrorMessage": "Invalid Host",
+ "placeholder": "e.g: clickhouse.mydomain.com",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Port",
+ "placeholder": "9000",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "database",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Database",
+ "placeholder": "e.g: default",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Cluster",
+ "value": "cluster",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Cluster",
+ "placeholder": "e.g: cluster_name",
+ "required": false
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid User",
+ "placeholder": "e.g: default",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "regex": ".*",
+ "placeholder": "e.g: rudder-pasword",
+ "required": false,
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Secure",
+ "value": "secure",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": {
+ "name": "secure",
+ "selectedValue": true
+ },
+ "label": "Skip verify",
+ "value": "skipVerify",
+ "default": false,
+ "footerNote": "If you are using self signed certificates set this field to true"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": {
+ "name": "secure",
+ "selectedValue": true
+ },
+ "label": "CA certificate",
+ "value": "caCertificate",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "CA Certificate"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ },
+ {
+ "type": "timeRangePicker",
+ "label": "Exclude window (Optional)",
+ "value": "excludeWindow",
+ "startTime": {
+ "label": "start time",
+ "value": "excludeWindowStartTime"
+ },
+ "endTime": {
+ "label": "end time",
+ "value": "excludeWindowEndTime"
+ },
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 1
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ },
+ {
+ "title": "Object Storage Configuration",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use RudderStack managed object storage",
+ "value": "useRudderStorage",
+ "default": false,
+ "footerNote": "Note: Only available for RudderStack managed data planes"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Choose your Storage Provider",
+ "value": "bucketProvider",
+ "options": [
+ {
+ "name": "S3",
+ "value": "S3"
+ },
+ {
+ "name": "GCS",
+ "value": "GCS"
+ },
+ {
+ "name": "AZURE_BLOB",
+ "value": "AZURE_BLOB"
+ },
+ {
+ "name": "MINIO",
+ "value": "MINIO"
+ }
+ ],
+ "defaultOption": {
+ "name": "S3",
+ "value": "S3"
+ },
+ "required": true,
+ "preRequisiteField": {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging S3 Storage Bucket Name",
+ "labelNote": "S3 Bucket to store data before loading into ClickHouse",
+ "value": "bucketName",
+ "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: s3-event-logs",
+ "footerNote": "Please make sure the bucket exists in your S3"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging GCS Object Storage Bucket Name",
+ "labelNote": "GCS Bucket to store data before loading into ClickHouse",
+ "value": "bucketName",
+ "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: gcs-event-logs",
+ "footerNote": "Please make sure the bucket exists in your GCS"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging Azure Blob Storage Container Name",
+ "labelNote": "Container to store data before loading into ClickHouse",
+ "value": "containerName",
+ "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
+ "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-event-logs",
+ "footerNote": "Please make sure the container exists in your Azure Blob Storage"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging MINIO Storage Bucket Name",
+ "labelNote": "MINIO Bucket to store data before loading into ClickHouse",
+ "value": "bucketName",
+ "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: minio-event-logs",
+ "footerNote": "Please make sure the bucket exists in your MINIO"
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ }
+ ],
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "regexErrorMessage": "Invalid Credentials",
+ "required": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MinIO Endpoint",
+ "value": "endPoint",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Endpoint",
+ "required": true,
+ "placeholder": "e.g: play.min.io:9000"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MINIO Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MINIO Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MINIO Secret Access Key",
+ "value": "secretAccessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MINIO Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key"
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use SSL for connection",
+ "value": "useSSL",
+ "default": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/clickup/db-config.json b/src/configurations/destinations/clickup/db-config.json
new file mode 100644
index 000000000..ea457aab8
--- /dev/null
+++ b/src/configurations/destinations/clickup/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "CLICKUP",
+ "displayName": "ClickUp",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiToken", "listId", "keyToCustomFieldName", "whitelistedEvents"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": ["apiToken", "listId", "keyToCustomFieldName", "whitelistedEvents"]
+ },
+ "secretKeys": ["apiToken"]
+ }
+}
diff --git a/src/configurations/destinations/clickup/metadata.json b/src/configurations/destinations/clickup/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/clickup/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/clickup/schema.json b/src/configurations/destinations/clickup/schema.json
new file mode 100644
index 000000000..d103f553f
--- /dev/null
+++ b/src/configurations/destinations/clickup/schema.json
@@ -0,0 +1,45 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiToken", "listId"],
+ "properties": {
+ "apiToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "listId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "keyToCustomFieldName": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/clickup/ui-config.json b/src/configurations/destinations/clickup/ui-config.json
new file mode 100644
index 000000000..d16d4c584
--- /dev/null
+++ b/src/configurations/destinations/clickup/ui-config.json
@@ -0,0 +1,68 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiToken",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Token",
+ "required": true,
+ "placeholder": "e.g. pk_880343042_1W64ZBPLP71H5YAYAUEJHSRL",
+ "secret": true,
+ "footerNote": "Your API Token"
+ },
+ {
+ "type": "textInput",
+ "label": "List ID",
+ "value": "listId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid List ID",
+ "required": true,
+ "placeholder": "e.g. 175496000",
+ "secret": false,
+ "footerNote": "Default List To Create New Task"
+ }
+ ]
+ },
+ {
+ "title": "Custom Fields",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Mapping to add custom fields while creating a task",
+ "value": "keyToCustomFieldName",
+ "required": false,
+ "labelRight": "ClickUp Custom Field Name",
+ "labelLeft": "Rudder Payload Property",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: abc",
+ "placeholderRight": "e.g: Industry",
+ "footerNote": "Map Rudder Properties to ClickUp Custom Fields. Here, properties will be fetched from properties object(message.properties). You can provide multiple Custom Fields of different Lists. Custom field name must be unique within a list to create a task successfully."
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "footerNote": "Events not included in the Allowlist will be discarded.",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/confluent_cloud/db-config.json b/src/configurations/destinations/confluent_cloud/db-config.json
new file mode 100644
index 000000000..9a9feb924
--- /dev/null
+++ b/src/configurations/destinations/confluent_cloud/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "CONFLUENT_CLOUD",
+ "displayName": "Confluent Cloud",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["bootstrapServer", "topic", "apiKey", "apiSecret"]
+ },
+ "secretKeys": ["apiSecret"]
+ }
+}
diff --git a/src/configurations/destinations/confluent_cloud/metadata.json b/src/configurations/destinations/confluent_cloud/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/confluent_cloud/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/confluent_cloud/schema.json b/src/configurations/destinations/confluent_cloud/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/confluent_cloud/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/confluent_cloud/ui-config.json b/src/configurations/destinations/confluent_cloud/ui-config.json
new file mode 100644
index 000000000..eed164ec6
--- /dev/null
+++ b/src/configurations/destinations/confluent_cloud/ui-config.json
@@ -0,0 +1,46 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Bootstrap server",
+ "value": "bootstrapServer",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Bootstrap server",
+ "required": true,
+ "placeholder": "e.g: test.region.provider.confluent.cloud:9092"
+ },
+ {
+ "type": "textInput",
+ "label": "Topic Name",
+ "value": "topic",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Topic Name",
+ "required": true,
+ "placeholder": "e.g: test-topic"
+ },
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "PHGHQ3SPPQXAX9GC"
+ },
+ {
+ "type": "textInput",
+ "label": "API Secret",
+ "value": "apiSecret",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Secret",
+ "required": true,
+ "placeholder": "xN9LCvHf5gX6lcifpDQPH7Hjx8RgQjO2PCqkZqAy//TAYQXYd4YxXWsxCtMKDmVm",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/convertflow/db-config.json b/src/configurations/destinations/convertflow/db-config.json
new file mode 100644
index 000000000..85cfc8435
--- /dev/null
+++ b/src/configurations/destinations/convertflow/db-config.json
@@ -0,0 +1,35 @@
+{
+ "name": "CONVERTFLOW",
+ "displayName": "Convertflow",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "websiteId",
+ "toggleToSendData",
+ "eventsList",
+ "eventsMappping",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "websiteId",
+ "toggleToSendData",
+ "eventsList",
+ "eventsMappping",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["websiteId"]
+ }
+}
diff --git a/src/configurations/destinations/convertflow/metadata.json b/src/configurations/destinations/convertflow/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/convertflow/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/convertflow/schema.json b/src/configurations/destinations/convertflow/schema.json
new file mode 100644
index 000000000..ca59fbfc9
--- /dev/null
+++ b/src/configurations/destinations/convertflow/schema.json
@@ -0,0 +1,85 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["websiteId"],
+ "properties": {
+ "websiteId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,10})$"
+ },
+ "toggleToSendData": {
+ "type": "boolean"
+ },
+ "eventsList": {
+ "type": "string",
+ "pattern": "^(cfReady|cfView|cfConversion|cfCompletion|cfAddToCart|cfSubmit|cfClose)$"
+ },
+ "eventsMappping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/convertflow/ui_config.json b/src/configurations/destinations/convertflow/ui-config.json
similarity index 100%
rename from data/destinations/convertflow/ui_config.json
rename to src/configurations/destinations/convertflow/ui-config.json
diff --git a/src/configurations/destinations/criteo/db-config.json b/src/configurations/destinations/criteo/db-config.json
new file mode 100644
index 000000000..5d1741c84
--- /dev/null
+++ b/src/configurations/destinations/criteo/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "CRITEO",
+ "displayName": "Criteo",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accountId",
+ "homePageUrl",
+ "hashMethod",
+ "fieldMapping",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "eventsToStandard"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "homePageUrl",
+ "hashMethod",
+ "fieldMapping",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "eventsToStandard"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["accountId"]
+ }
+}
diff --git a/src/configurations/destinations/criteo/metadata.json b/src/configurations/destinations/criteo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/criteo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/criteo/schema.json b/src/configurations/destinations/criteo/schema.json
new file mode 100644
index 000000000..45c90bc15
--- /dev/null
+++ b/src/configurations/destinations/criteo/schema.json
@@ -0,0 +1,106 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["accountId"],
+ "type": "object",
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[1-9]+$"
+ },
+ "homePageUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "hashMethod": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "fieldMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "eventsToStandard": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/criteo/ui_config.json b/src/configurations/destinations/criteo/ui-config.json
similarity index 100%
rename from data/destinations/criteo/ui_config.json
rename to src/configurations/destinations/criteo/ui-config.json
diff --git a/src/configurations/destinations/custify/db-config.json b/src/configurations/destinations/custify/db-config.json
new file mode 100644
index 000000000..7dd728a2c
--- /dev/null
+++ b/src/configurations/destinations/custify/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "CUSTIFY",
+ "displayName": "Custify",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey", "sendAnonymousId"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "group", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "sendAnonymousId"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/custify/metadata.json b/src/configurations/destinations/custify/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/custify/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/custify/schema.json b/src/configurations/destinations/custify/schema.json
new file mode 100644
index 000000000..e2e81316e
--- /dev/null
+++ b/src/configurations/destinations/custify/schema.json
@@ -0,0 +1,16 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,61})$"
+ },
+ "sendAnonymousId": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/custify/ui-config.json b/src/configurations/destinations/custify/ui-config.json
new file mode 100644
index 000000000..e4632520f
--- /dev/null
+++ b/src/configurations/destinations/custify/ui-config.json
@@ -0,0 +1,24 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,61})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g: Tudc...5G4z"
+ },
+ {
+ "type": "checkbox",
+ "label": "Fall back to anonymousId if userId is not present",
+ "value": "sendAnonymousId",
+ "default": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/customerio/db-config.json b/src/configurations/destinations/customerio/db-config.json
new file mode 100644
index 000000000..f31fde4f5
--- /dev/null
+++ b/src/configurations/destinations/customerio/db-config.json
@@ -0,0 +1,47 @@
+{
+ "name": "CUSTOMERIO",
+ "displayName": "Customer IO",
+ "config": {
+ "supportsVisualMapper": true,
+ "isAudienceSupported": true,
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "siteID",
+ "datacenterEU",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "siteID",
+ "datacenterEU",
+ "deviceTokenEventName",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/customerio/metadata.json b/src/configurations/destinations/customerio/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/customerio/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/customerio/schema.json b/src/configurations/destinations/customerio/schema.json
new file mode 100644
index 000000000..c1a5e3fc4
--- /dev/null
+++ b/src/configurations/destinations/customerio/schema.json
@@ -0,0 +1,77 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["siteID", "apiKey"],
+ "properties": {
+ "siteID": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "deviceTokenEventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "datacenterEU": {
+ "type": "boolean"
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/customerio/ui_config.json b/src/configurations/destinations/customerio/ui-config.json
similarity index 100%
rename from data/destinations/customerio/ui_config.json
rename to src/configurations/destinations/customerio/ui-config.json
diff --git a/src/configurations/destinations/dcm_floodlight/db-config.json b/src/configurations/destinations/dcm_floodlight/db-config.json
new file mode 100644
index 000000000..a87bdb6be
--- /dev/null
+++ b/src/configurations/destinations/dcm_floodlight/db-config.json
@@ -0,0 +1,61 @@
+{
+ "name": "DCM_FLOODLIGHT",
+ "displayName": "DCM Floodlight",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "advertiserId",
+ "activityTag",
+ "groupTag",
+ "conversionEvents",
+ "conversionLinker",
+ "allowAdPersonalizationSignals",
+ "tagFormat",
+ "doubleclickId",
+ "googleNetworkId",
+ "eventFilteringOption",
+ "whitelistedEvents",
+ "blacklistedEvents",
+ "oneTrustCookieCategories"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse",
+ "web"
+ ],
+ "supportedMessageTypes": ["track", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "advertiserId",
+ "activityTag",
+ "groupTag",
+ "conversionEvents",
+ "eventFilteringOption",
+ "whitelistedEvents",
+ "blacklistedEvents"
+ ],
+ "web": [
+ "useNativeSDK",
+ "conversionLinker",
+ "allowAdPersonalizationSignals",
+ "tagFormat",
+ "doubleclickId",
+ "googleNetworkId",
+ "oneTrustCookieCategories"
+ ]
+ },
+ "secretKeys": ["advertiserId"]
+ }
+}
diff --git a/src/configurations/destinations/dcm_floodlight/metadata.json b/src/configurations/destinations/dcm_floodlight/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/dcm_floodlight/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/dcm_floodlight/schema.json b/src/configurations/destinations/dcm_floodlight/schema.json
new file mode 100644
index 000000000..cf9a87881
--- /dev/null
+++ b/src/configurations/destinations/dcm_floodlight/schema.json
@@ -0,0 +1,150 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["advertiserId"],
+ "properties": {
+ "advertiserId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ },
+ "activityTag": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "groupTag": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "conversionEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "floodlightActivityTag": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "floodlightGroupTag": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "salesTag": {
+ "type": "boolean"
+ },
+ "customVariables": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "tagFormat": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(globalSiteTag|iframeTag)$"
+ },
+ "conversionLinker": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "allowAdPersonalizationSignals": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "doubleclickId": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "googleNetworkId": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/dcm_floodlight/ui_config.json b/src/configurations/destinations/dcm_floodlight/ui-config.json
similarity index 100%
rename from data/destinations/dcm_floodlight/ui_config.json
rename to src/configurations/destinations/dcm_floodlight/ui-config.json
diff --git a/src/configurations/destinations/delighted/db-config.json b/src/configurations/destinations/delighted/db-config.json
new file mode 100644
index 000000000..58e9bed27
--- /dev/null
+++ b/src/configurations/destinations/delighted/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "DELIGHTED",
+ "displayName": "Delighted",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["alias", "identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "channel", "delay", "eventNamesSettings"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/delighted/metadata.json b/src/configurations/destinations/delighted/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/delighted/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/delighted/schema.json b/src/configurations/destinations/delighted/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/delighted/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/delighted/ui-config.json b/src/configurations/destinations/delighted/ui-config.json
new file mode 100644
index 000000000..5a05bd3ca
--- /dev/null
+++ b/src/configurations/destinations/delighted/ui-config.json
@@ -0,0 +1,67 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
+ "secret": true,
+ "footerNote": "Your API Key"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Channel",
+ "value": "channel",
+ "required": true,
+ "placeholder": "Email",
+ "options": [
+ {
+ "name": "Email",
+ "value": "email"
+ },
+ {
+ "name": "SMS",
+ "value": "sms"
+ }
+ ],
+ "defaultOption": {
+ "name": "Email",
+ "value": "email"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "Delay",
+ "value": "delay",
+ "required": false,
+ "placeholder": "e.g. 60",
+ "default": "0",
+ "footerNote": "The amount of seconds to wait before sending the survey email."
+ }
+ ]
+ },
+ {
+ "title": "Event Names",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "eventNamesSettings",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "Event",
+ "value": "event",
+ "required": false,
+ "placeholder": "e.g: Product Reviewed"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/deltalake/db-config.json b/src/configurations/destinations/deltalake/db-config.json
new file mode 100644
index 000000000..5df9681b4
--- /dev/null
+++ b/src/configurations/destinations/deltalake/db-config.json
@@ -0,0 +1,63 @@
+{
+ "name": "DELTALAKE",
+ "displayName": "Databricks (Delta Lake)",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "host",
+ "port",
+ "path",
+ "token",
+ "namespace",
+ "bucketProvider",
+ "bucketName",
+ "containerName",
+ "prefix",
+ "useSTSTokens",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "enableSSE",
+ "accountName",
+ "accountKey",
+ "useSASTokens",
+ "sasToken",
+ "credentials",
+ "syncFrequency",
+ "syncStartAt",
+ "excludeWindow",
+ "enableExternalLocation",
+ "externalLocation"
+ ]
+ },
+ "secretKeys": [
+ "accessKeyID",
+ "accessKey",
+ "accountName",
+ "accountKey",
+ "sasToken",
+ "credentials",
+ "token"
+ ]
+ }
+}
diff --git a/src/configurations/destinations/deltalake/metadata.json b/src/configurations/destinations/deltalake/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/deltalake/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/deltalake/schema.json b/src/configurations/destinations/deltalake/schema.json
new file mode 100644
index 000000000..c0e1ae595
--- /dev/null
+++ b/src/configurations/destinations/deltalake/schema.json
@@ -0,0 +1,208 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["host", "port", "path", "token", "syncFrequency", "bucketProvider"],
+ "properties": {
+ "host": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "port": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "path": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "token": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "bucketProvider": {
+ "type": "string",
+ "pattern": "^(S3|GCS|AZURE_BLOB)$"
+ },
+ "enableExternalLocation": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "enableExternalLocation": {
+ "const": "true"
+ }
+ },
+ "required": ["enableExternalLocation"]
+ },
+ "then": {
+ "properties": {
+ "externalLocation": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ }
+ },
+ "required": ["externalLocation"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "S3"
+ }
+ },
+ "required": ["bucketProvider"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "enableSSE": {
+ "type": "boolean"
+ },
+ "useSTSTokens": {
+ "type": "boolean"
+ }
+ },
+ "required": ["bucketName", "enableSSE", "useSTSTokens"]
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "useSTSTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSTSTokens"]
+ },
+ "then": {
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ }
+ },
+ "required": ["accessKeyID", "accessKey"]
+ }
+ }
+ ]
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "GCS"
+ }
+ },
+ "required": ["bucketProvider"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!goog)(?!.*google.*)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["bucketName", "credentials"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "AZURE_BLOB"
+ }
+ },
+ "required": ["bucketProvider"]
+ },
+ "then": {
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{1,100})$"
+ }
+ },
+ "required": ["containerName", "accountName"],
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSASTokens", "sasToken"]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/deltalake/ui-config.json b/src/configurations/destinations/deltalake/ui-config.json
new file mode 100644
index 000000000..20c3a5471
--- /dev/null
+++ b/src/configurations/destinations/deltalake/ui-config.json
@@ -0,0 +1,439 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,100})$",
+ "regexErrorMessage": "Invalid Host",
+ "placeholder": "xxx.cloud.databricks.com",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Port",
+ "placeholder": "443",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "HTTP Path",
+ "value": "path",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid HTTP Path",
+ "placeholder": "sql/protocolv1/o// or /sql/1.0/endpoints/",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Personal Access Token",
+ "value": "token",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Access Token",
+ "placeholder": "e.g: ",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable delta tables creation in an external location",
+ "value": "enableExternalLocation",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "enableExternalLocation",
+ "selectedValue": true
+ }
+ ],
+ "label": "External delta table location",
+ "value": "externalLocation",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid External Delta Table Location",
+ "placeholder": "/path/to/delta/table",
+ "required": true,
+ "footerNote": "This can only be applied to the new delta tables created by RudderStack. For already existing tables, RudderStack do not recreate the tables again.",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/data-warehouse-integrations/delta-lake/#faqs",
+ "text": "Please refer to the FAQs section, before you wanted to make any changes around managed and unmanaged tables provided by the Databricks."
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "labelNote": "Schema name for the warehouse where the tables are created",
+ "value": "namespace",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "regexErrorMessage": "Invalid Namespace",
+ "required": false,
+ "placeholder": "e.g: iosSource",
+ "footerNote": "Default will be the source name"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ },
+ {
+ "type": "timeRangePicker",
+ "label": "Exclude window (Optional)",
+ "value": "excludeWindow",
+ "startTime": {
+ "label": "start time",
+ "value": "excludeWindowStartTime"
+ },
+ "endTime": {
+ "label": "end time",
+ "value": "excludeWindowEndTime"
+ },
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 1
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ },
+ {
+ "title": "Object Storage Configuration",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Choose your Storage Provider",
+ "value": "bucketProvider",
+ "options": [
+ {
+ "name": "S3",
+ "value": "S3"
+ },
+ {
+ "name": "GCS",
+ "value": "GCS"
+ },
+ {
+ "name": "AZURE_BLOB",
+ "value": "AZURE_BLOB"
+ }
+ ],
+ "defaultOption": {
+ "name": "S3",
+ "value": "S3"
+ },
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ }
+ ],
+ "label": "Staging S3 Storage Bucket Name",
+ "labelNote": "S3 Bucket to store data before loading into DeltaLake",
+ "value": "bucketName",
+ "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: s3-event-logs",
+ "footerNote": "Please make sure the bucket exists in your S3"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ }
+ ],
+ "label": "Staging GCS Object Storage Bucket Name",
+ "labelNote": "GCS Bucket to store data before loading into DeltaLake",
+ "value": "bucketName",
+ "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: gcs-event-logs",
+ "footerNote": "Please make sure the bucket exists in your GCS"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ }
+ ],
+ "label": "Staging Azure Blob Storage Container Name",
+ "labelNote": "Container to store data before loading into DeltaLake",
+ "value": "containerName",
+ "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
+ "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-event-logs",
+ "footerNote": "Please make sure the container exists in your Azure Blob Storage"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "checkbox",
+ "label": "Use STS Tokens to copy staging files",
+ "value": "useSTSTokens",
+ "default": false,
+ "footerNote": "Note: This feature is only supported with databricks S3A client.",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ }
+ ]
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useSTSTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useSTSTokens",
+ "selectedValue": true
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ }
+ ],
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useSTSTokens",
+ "selectedValue": true
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useSTSTokens",
+ "selectedValue": true
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ }
+ ],
+ "label": "Enable Server Side Encryption For S3?",
+ "value": "enableSSE",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ }
+ ],
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ }
+ ],
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ }
+ ],
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "secret": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/digital_ocean_spaces/db-config.json b/src/configurations/destinations/digital_ocean_spaces/db-config.json
new file mode 100644
index 000000000..b6df7573a
--- /dev/null
+++ b/src/configurations/destinations/digital_ocean_spaces/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "DIGITAL_OCEAN_SPACES",
+ "displayName": "DigitalOcean Spaces",
+ "config": {
+ "transformAt": "none",
+ "transformAtV1": "none",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "cordova",
+ "warehouse",
+ "reactnative",
+ "flutter"
+ ],
+ "destConfig": {
+ "defaultConfig": ["endPoint", "accessKeyID", "accessKey", "bucketName", "prefix"]
+ },
+ "secretKeys": ["accessKeyID", "secretAccessKey"]
+ }
+}
diff --git a/src/configurations/destinations/digital_ocean_spaces/metadata.json b/src/configurations/destinations/digital_ocean_spaces/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/digital_ocean_spaces/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/digital_ocean_spaces/schema.json b/src/configurations/destinations/digital_ocean_spaces/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/digital_ocean_spaces/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/digital_ocean_spaces/ui-config.json b/src/configurations/destinations/digital_ocean_spaces/ui-config.json
new file mode 100644
index 000000000..e9ee3b835
--- /dev/null
+++ b/src/configurations/destinations/digital_ocean_spaces/ui-config.json
@@ -0,0 +1,57 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "DigitalOcean Spaces Endpoint",
+ "value": "endPoint",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid DigitalOcean Spaces Endpoint",
+ "required": true,
+ "placeholder": "e.g: sgp1.digitaloceanspaces.com",
+ "footerNote": "Please make sure to include region in endpoint"
+ },
+ {
+ "type": "textInput",
+ "label": "Spaces Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Spaces Access Key ID",
+ "required": true,
+ "placeholder": "e.g: CYKPHWDRAFHTHABAVGF6",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Spaces Access Key Secret",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Spaces Access Key Secret",
+ "required": true,
+ "placeholder": "e.g: zuftfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Spaces Bucket Name",
+ "value": "bucketName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Spaces Bucket Name",
+ "required": true,
+ "placeholder": "e.g: event-bucket"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "rudder"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/discord/db-config.json b/src/configurations/destinations/discord/db-config.json
new file mode 100644
index 000000000..d9e88b235
--- /dev/null
+++ b/src/configurations/destinations/discord/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "DISCORD",
+ "displayName": "Discord",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "identifyTemplate",
+ "embedTitleTemplate",
+ "embedDescriptionTemplate",
+ "embedFlag",
+ "eventTemplateSettings",
+ "webhookUrl",
+ "whitelistedTraitsSettings"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/discord/metadata.json b/src/configurations/destinations/discord/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/discord/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/discord/schema.json b/src/configurations/destinations/discord/schema.json
new file mode 100644
index 000000000..716eab97f
--- /dev/null
+++ b/src/configurations/destinations/discord/schema.json
@@ -0,0 +1,59 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["webhookUrl"],
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
+ },
+ "identifyTemplate": {
+ "type": "string",
+ "pattern": "^(.{0,1000})$"
+ },
+ "embedFlag": {
+ "type": "boolean"
+ },
+ "embedTitleTemplate": {
+ "type": "string",
+ "pattern": "^(.{0,1000})$"
+ },
+ "embedDescriptionTemplate": {
+ "type": "string",
+ "pattern": "^(.{0,1000})$"
+ },
+ "eventTemplateSettings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "^(.{0,100})$"
+ },
+ "eventTemplate": {
+ "type": "string",
+ "pattern": "^(.{0,100})$"
+ },
+ "eventRegex": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "whitelistedTraitsSettings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "trait": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/discord/ui-config.json b/src/configurations/destinations/discord/ui-config.json
new file mode 100644
index 000000000..5429827df
--- /dev/null
+++ b/src/configurations/destinations/discord/ui-config.json
@@ -0,0 +1,134 @@
+{
+ "uiConfig": [
+ {
+ "title": "Identify Template",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Identify Template",
+ "value": "identifyTemplate",
+ "regex": "^(.{0,1000})$",
+ "regexErrorMessage": "Invalid Identify Template",
+ "required": false,
+ "placeholder": "e.g: User {{name}} with {{traits}} is identified",
+ "footerNote": "This template will be used to build text message for identify Call"
+ }
+ ]
+ },
+ {
+ "title": "Event Template",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "eventTemplateSettings",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "Event Name",
+ "value": "eventName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Event Name",
+ "required": false,
+ "placeholder": "e.g: Product Viewed",
+ "footerNote": "For this event below template would be used to build message for track call"
+ },
+ {
+ "type": "textInput",
+ "label": "Event Template",
+ "value": "eventTemplate",
+ "regex": "^(.{0,1000})$",
+ "regexErrorMessage": "Invalid Event Template",
+ "required": false,
+ "placeholder": "e.g: User {{name}} did {{event}} with {{properties}}",
+ "footerNote": "This template will be used to build text message for track Call for above event name"
+ },
+ {
+ "type": "checkbox",
+ "label": "Regex Matching",
+ "value": "eventRegex",
+ "footerNote": "If true, this matches the event name with above mentioned event.",
+ "default": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Embed Message Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Embed Flag",
+ "value": "embedFlag",
+ "required": false,
+ "default": false,
+ "footerNote": "Toggle it on if you want a embed message on the discord. Refer To docs for more details"
+ },
+ {
+ "preRequisiteField": {
+ "name": "embedFlag",
+ "selectedValue": true
+ },
+ "type": "textInput",
+ "label": "Title Template",
+ "value": "embedTitleTemplate",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid template",
+ "required": false,
+ "placeholder": "e.g: {{name}} ",
+ "footerNote": "This template will be used to build title for embed message"
+ },
+ {
+ "preRequisiteField": {
+ "name": "embedFlag",
+ "selectedValue": true
+ },
+ "type": "textInput",
+ "label": "Description Template",
+ "value": "embedDescriptionTemplate",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid template",
+ "required": false,
+ "placeholder": "e.g: {{traits}}",
+ "footerNote": "This template will be used to build description for embed message"
+ }
+ ]
+ },
+ {
+ "title": "Incoming Webhook Url",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Webhook Url",
+ "value": "webhookUrl",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(https?|ftp)://[^\\s/$.?#].[^\\s]*$",
+ "regexErrorMessage": "Invalid Webhook Url",
+ "required": true,
+ "placeholder": "e.g: https://discord.com/api/webhooks/12rf2v29038y3234gr34/78319yrgfb284q3130",
+ "footerNote": "The url mapped to discord channel where you want to send the message. Refer to docs for more."
+ }
+ ]
+ },
+ {
+ "title": "Whitelisted Traits",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedTraitsSettings",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "Trait",
+ "value": "trait",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})",
+ "regexErrorMessage": "Invalid Trait",
+ "required": false,
+ "footerNote": "Mention the traits which you want to display in the message through templates, if not provided, we take all the traits in the message.",
+ "placeholder": "e.g: firstName"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/drip/db-config.json b/src/configurations/destinations/drip/db-config.json
new file mode 100644
index 000000000..7d6d6b802
--- /dev/null
+++ b/src/configurations/destinations/drip/db-config.json
@@ -0,0 +1,44 @@
+{
+ "name": "DRIP",
+ "displayName": "Drip",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accountId",
+ "campaignId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "apiKey",
+ "campaignId",
+ "enableUserCreation",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/drip/metadata.json b/src/configurations/destinations/drip/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/drip/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/drip/schema.json b/src/configurations/destinations/drip/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/drip/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/drip/ui_config.json b/src/configurations/destinations/drip/ui-config.json
similarity index 100%
rename from data/destinations/drip/ui_config.json
rename to src/configurations/destinations/drip/ui-config.json
diff --git a/src/configurations/destinations/engage/db-config.json b/src/configurations/destinations/engage/db-config.json
new file mode 100644
index 000000000..6554392f3
--- /dev/null
+++ b/src/configurations/destinations/engage/db-config.json
@@ -0,0 +1,45 @@
+{
+ "name": "ENGAGE",
+ "displayName": "Engage",
+ "config": {
+ "transformAt": "roouter",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "publicKey",
+ "privateKey",
+ "listIds",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track", "page", "group"],
+ "destConfig": {
+ "defaultConfig": [
+ "publicKey",
+ "privateKey",
+ "listIds",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["privateKey"]
+ }
+}
diff --git a/src/configurations/destinations/engage/metadata.json b/src/configurations/destinations/engage/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/engage/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/engage/schema.json b/src/configurations/destinations/engage/schema.json
new file mode 100644
index 000000000..7ab8b52b6
--- /dev/null
+++ b/src/configurations/destinations/engage/schema.json
@@ -0,0 +1,65 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["publicKey", "privateKey"],
+ "properties": {
+ "publicKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "privateKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "listIds": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "listID": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/engage/ui_config.json b/src/configurations/destinations/engage/ui-config.json
similarity index 100%
rename from data/destinations/engage/ui_config.json
rename to src/configurations/destinations/engage/ui-config.json
diff --git a/src/configurations/destinations/eventbridge/db-config.json b/src/configurations/destinations/eventbridge/db-config.json
new file mode 100644
index 000000000..77857af41
--- /dev/null
+++ b/src/configurations/destinations/eventbridge/db-config.json
@@ -0,0 +1,37 @@
+{
+ "name": "EVENTBRIDGE",
+ "displayName": "AWS EventBridge",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias", "group"],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "iamRoleARN",
+ "roleBasedAuth",
+ "region",
+ "accessKeyID",
+ "accessKey",
+ "detailType",
+ "eventBusName",
+ "resourceID"
+ ]
+ },
+ "secretKeys": ["accessKeyID", "accessKey"]
+ }
+}
diff --git a/src/configurations/destinations/eventbridge/metadata.json b/src/configurations/destinations/eventbridge/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/eventbridge/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/eventbridge/schema.json b/src/configurations/destinations/eventbridge/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/eventbridge/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/eventbridge/ui_config.json b/src/configurations/destinations/eventbridge/ui-config.json
similarity index 100%
rename from data/destinations/eventbridge/ui_config.json
rename to src/configurations/destinations/eventbridge/ui-config.json
diff --git a/data/destinations/facebook_offline_conversions/db_config.json b/src/configurations/destinations/facebook_offline_conversions/db-config.json
similarity index 100%
rename from data/destinations/facebook_offline_conversions/db_config.json
rename to src/configurations/destinations/facebook_offline_conversions/db-config.json
diff --git a/src/configurations/destinations/facebook_offline_conversions/metadata.json b/src/configurations/destinations/facebook_offline_conversions/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/facebook_offline_conversions/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/facebook_offline_conversions/schema.json b/src/configurations/destinations/facebook_offline_conversions/schema.json
similarity index 100%
rename from data/destinations/facebook_offline_conversions/schema.json
rename to src/configurations/destinations/facebook_offline_conversions/schema.json
diff --git a/data/destinations/facebook_offline_conversions/ui_config.json b/src/configurations/destinations/facebook_offline_conversions/ui-config.json
similarity index 100%
rename from data/destinations/facebook_offline_conversions/ui_config.json
rename to src/configurations/destinations/facebook_offline_conversions/ui-config.json
diff --git a/src/configurations/destinations/facebook_pixel/db-config.json b/src/configurations/destinations/facebook_pixel/db-config.json
new file mode 100644
index 000000000..31bbfb32f
--- /dev/null
+++ b/src/configurations/destinations/facebook_pixel/db-config.json
@@ -0,0 +1,62 @@
+{
+ "name": "FACEBOOK_PIXEL",
+ "displayName": "Facebook Pixel",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "blacklistPiiProperties",
+ "categoryToContent",
+ "pixelId",
+ "eventsToEvents",
+ "eventCustomProperties",
+ "valueFieldIdentifier",
+ "advancedMapping",
+ "legacyConversionPixelId",
+ "whitelistPiiProperties",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "useUpdatedMapping"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "blacklistPiiProperties",
+ "categoryToContent",
+ "pixelId",
+ "eventsToEvents",
+ "eventCustomProperties",
+ "valueFieldIdentifier",
+ "advancedMapping",
+ "whitelistPiiProperties",
+ "limitedDataUSage",
+ "accessToken",
+ "testDestination",
+ "testEventCode",
+ "standardPageCall",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "useUpdatedMapping"
+ ],
+ "web": ["useNativeSDK", "legacyConversionPixelId", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/facebook_pixel/metadata.json b/src/configurations/destinations/facebook_pixel/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/facebook_pixel/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/facebook_pixel/schema.json b/src/configurations/destinations/facebook_pixel/schema.json
new file mode 100644
index 000000000..5894ce817
--- /dev/null
+++ b/src/configurations/destinations/facebook_pixel/schema.json
@@ -0,0 +1,171 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["pixelId"],
+ "type": "object",
+ "properties": {
+ "pixelId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "accessToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,208})$"
+ },
+ "standardPageCall": {
+ "type": "boolean"
+ },
+ "valueFieldIdentifier": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(properties.value|properties.price)$"
+ },
+ "advancedMapping": {
+ "type": "boolean"
+ },
+ "testDestination": {
+ "type": "boolean"
+ },
+ "testEventCode": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventsToEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventCustomProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventCustomProperties": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistPiiProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "blacklistPiiProperties": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "blacklistPiiHash": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "whitelistPiiProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "whitelistPiiProperties": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "categoryToContent": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "legacyConversionPixelId": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/facebook_pixel/ui_config.json b/src/configurations/destinations/facebook_pixel/ui-config.json
similarity index 100%
rename from data/destinations/facebook_pixel/ui_config.json
rename to src/configurations/destinations/facebook_pixel/ui-config.json
diff --git a/src/configurations/destinations/factorsai/db-config.json b/src/configurations/destinations/factorsai/db-config.json
new file mode 100644
index 000000000..8c1d0934e
--- /dev/null
+++ b/src/configurations/destinations/factorsai/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "FACTORSAI",
+ "displayName": "Factors AI",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["factorsAIApiKey"]
+ },
+ "secretKeys": ["factorsAIApiKey"]
+ }
+}
diff --git a/src/configurations/destinations/factorsai/metadata.json b/src/configurations/destinations/factorsai/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/factorsai/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/factorsai/schema.json b/src/configurations/destinations/factorsai/schema.json
new file mode 100644
index 000000000..be4eb3211
--- /dev/null
+++ b/src/configurations/destinations/factorsai/schema.json
@@ -0,0 +1,13 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["factorsAIApiKey"],
+ "type": "object",
+ "properties": {
+ "factorsAIApiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/factorsai/ui-config.json b/src/configurations/destinations/factorsai/ui-config.json
new file mode 100644
index 000000000..470e60030
--- /dev/null
+++ b/src/configurations/destinations/factorsai/ui-config.json
@@ -0,0 +1,19 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API KEY",
+ "value": "factorsAIApiKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Length of API KEY must be below 100 characters.",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: ABC1231RDG"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/fb/db-config.json b/src/configurations/destinations/fb/db-config.json
new file mode 100644
index 000000000..6d3d70120
--- /dev/null
+++ b/src/configurations/destinations/fb/db-config.json
@@ -0,0 +1,45 @@
+{
+ "name": "FB",
+ "displayName": "Facebook App Events",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "appID",
+ "limitedDataUse",
+ "dpoCountry",
+ "dpoState",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "appID",
+ "limitedDataUse",
+ "dpoCountry",
+ "dpoState",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/fb/metadata.json b/src/configurations/destinations/fb/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/fb/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/fb/schema.json b/src/configurations/destinations/fb/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/fb/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/fb/ui-config.json b/src/configurations/destinations/fb/ui-config.json
new file mode 100644
index 000000000..e85b1857f
--- /dev/null
+++ b/src/configurations/destinations/fb/ui-config.json
@@ -0,0 +1,138 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "APP ID",
+ "value": "appID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid APP ID",
+ "required": true,
+ "placeholder": "e.g: bSjsdGYsOo9sjw23Shj"
+ }
+ ]
+ },
+ {
+ "title": "Data Processing Options",
+ "sectionNote": "These settings are applicable only for Mobile Device Mode",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Limited Data use",
+ "value": "limitedDataUse",
+ "default": false
+ },
+ {
+ "type": "singleSelect",
+ "label": "State",
+ "value": "dpoState",
+ "options": [
+ {
+ "name": "Use Facebook to detect Automatically",
+ "value": "0"
+ },
+ {
+ "name": "California",
+ "value": "1000"
+ }
+ ],
+ "defaultOption": {
+ "name": "Use Facebook to detect Automatically",
+ "value": "0"
+ },
+ "required": false,
+ "footerNote": "Note: State will be sent as a Data Processing Option to Facebook only if you enable Limited Data Use. Valid values are 0, 1000."
+ },
+ {
+ "type": "singleSelect",
+ "label": "Country",
+ "value": "dpoCountry",
+ "options": [
+ {
+ "name": "Use Facebook to detect Automatically",
+ "value": "0"
+ },
+ {
+ "name": "United States of America",
+ "value": "1"
+ }
+ ],
+ "defaultOption": {
+ "name": "Use Facebook to detect Automatically",
+ "value": "0"
+ },
+ "required": false,
+ "footerNote": "Note: Country will be sent as a Data Processing Option to Facebook only if you enable Limited Data Use. Valid values are 0, 1."
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/fb_custom_audience/db-config.json b/src/configurations/destinations/fb_custom_audience/db-config.json
new file mode 100644
index 000000000..db668cd9b
--- /dev/null
+++ b/src/configurations/destinations/fb_custom_audience/db-config.json
@@ -0,0 +1,59 @@
+{
+ "name": "FB_CUSTOM_AUDIENCE",
+ "displayName": "Facebook Custom Audience",
+ "config": {
+ "supportsVisualMapper": true,
+ "syncBehaviours": ["mirror"],
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["cloud", "warehouse"],
+ "supportedMessageTypes": ["audiencelist"],
+ "isAudienceSupported": true,
+ "destConfig": {
+ "defaultConfig": [
+ "accessToken",
+ "audienceId",
+ "maxUserCount",
+ "userSchema",
+ "isHashRequired",
+ "isRaw",
+ "disableFormat",
+ "skipVerify",
+ "type",
+ "subType"
+ ]
+ },
+ "secretKeys": ["accessToken"]
+ },
+ "responseRules": {
+ "responseType": "JSON",
+ "rules": {
+ "abortable": [
+ {
+ "errors.0.code": 200
+ },
+ {
+ "errors.0.code": 100
+ },
+ {
+ "errors.0.code": 2650
+ },
+ {
+ "errors.0.code": 368
+ },
+ {
+ "errors.0.code": 105
+ },
+ {
+ "errors.0.code": 294
+ },
+ {
+ "errors.0.code": 190
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/destinations/fb_custom_audience/metadata.json b/src/configurations/destinations/fb_custom_audience/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/fb_custom_audience/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/fb_custom_audience/schema.json b/src/configurations/destinations/fb_custom_audience/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/fb_custom_audience/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/fb_custom_audience/ui-config.json b/src/configurations/destinations/fb_custom_audience/ui-config.json
new file mode 100644
index 000000000..2c5c588c7
--- /dev/null
+++ b/src/configurations/destinations/fb_custom_audience/ui-config.json
@@ -0,0 +1,393 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Access Token",
+ "value": "accessToken",
+ "required": true,
+ "placeholder": "EAALmZAOFOFpcPcBAEdZCPl4uSHPxQDZCrU6KbZB1gICD9y1ZBNpevRSPPiIZBO06WZCUuySAX7vw2Re7vmZAHo6OFFZA4vsCUqq2XqBQgkbbgRKLy4mXQ4wJFJ2GXGe69qaOXgugjkdjfgRjkknkfOUUTJfmGnzShZCp2jJKBf1kDX7xZB8IX9vdfEIZBZBhHQo4ZD"
+ },
+ {
+ "type": "textInput",
+ "label": "Audience Id",
+ "value": "audienceId",
+ "required": true,
+ "placeholder": "23847675445910030"
+ },
+ {
+ "type": "textInput",
+ "label": "Audience Batch Size",
+ "value": "maxUserCount",
+ "required": true,
+ "placeholder": "50"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Schema Fields",
+ "value": "userSchema",
+ "placeholder": "EMAIL",
+ "mode": "multiple",
+ "options": [
+ {
+ "name": "EMAIL",
+ "value": "EMAIL"
+ },
+ {
+ "name": "PHONE",
+ "value": "PHONE"
+ },
+ {
+ "name": "GENDER",
+ "value": "GEN"
+ },
+ {
+ "name": "MADID",
+ "value": "MADID"
+ },
+ {
+ "name": "EXTERN_ID",
+ "value": "EXTERN_ID"
+ },
+ {
+ "name": "DOB YEAR (YYYY)",
+ "value": "DOBY"
+ },
+ {
+ "name": "DOB MONTH (MM)",
+ "value": "DOBM"
+ },
+ {
+ "name": "DOB DATE (DD)",
+ "value": "DOBD"
+ },
+ {
+ "name": "LAST NAME",
+ "value": "LN"
+ },
+ {
+ "name": "FIRST NAME",
+ "value": "FN"
+ },
+ {
+ "name": "FIRST NAME INITIAL",
+ "value": "FI"
+ },
+ {
+ "name": "CITY",
+ "value": "CT"
+ },
+ {
+ "name": "US STATES",
+ "value": "ST"
+ },
+ {
+ "name": "ZIP",
+ "value": "ZIP"
+ },
+ {
+ "name": "COUNTRY",
+ "value": "COUNTRY"
+ }
+ ],
+ "defaultOption": {
+ "value": ["EMAIL"]
+ },
+ "footerNote": "The Allowed Parameter List : https://developers.facebook.com/docs/marketing-api/audiences/guides/custom-audiences/#hash"
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable Hashing",
+ "value": "isHashRequired",
+ "default": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Is The Data Raw",
+ "value": "isRaw",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Disable Formatting",
+ "value": "disableFormat",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Skip verify",
+ "value": "skipVerify",
+ "default": false
+ },
+ {
+ "type": "singleSelect",
+ "label": "Type",
+ "value": "type",
+ "placeholder": "NA",
+ "mode": "single",
+ "options": [
+ {
+ "name": "UNKNOWN",
+ "value": "UNKNOWN"
+ },
+ {
+ "name": "FILE_IMPORTED",
+ "value": "FILE_IMPORTED"
+ },
+ {
+ "name": "EVENT_BASED",
+ "value": "EVENT_BASED"
+ },
+ {
+ "name": "SEED_BASED",
+ "value": "SEED_BASED"
+ },
+ {
+ "name": "THIRD_PARTY_IMPORTED",
+ "value": "THIRD_PARTY_IMPORTED"
+ },
+ {
+ "name": "COPY_PASTE",
+ "value": "COPY_PASTE"
+ },
+ {
+ "name": "CONTACT_IMPORTER",
+ "value": "CONTACT_IMPORTER"
+ },
+ {
+ "name": "HOUSEHOLD_AUDIENCE",
+ "value": "HOUSEHOLD_AUDIENCE"
+ },
+ {
+ "name": "NA",
+ "value": "NA"
+ }
+ ],
+ "defaultOption": {
+ "name": "NA",
+ "value": "NA"
+ }
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sub Type",
+ "value": "subType",
+ "placeholder": "NA",
+ "mode": "single",
+ "options": [
+ {
+ "name": "ANYTHING",
+ "value": "ANYTHING"
+ },
+ {
+ "name": "NOTHING",
+ "value": "NOTHING"
+ },
+ {
+ "name": "HASHES",
+ "value": "HASHES"
+ },
+ {
+ "name": "USER_IDS",
+ "value": "USER_IDS"
+ },
+ {
+ "name": "HASHES_OR_USER_IDS",
+ "value": "HASHES_OR_USER_IDS"
+ },
+ {
+ "name": "MOBILE_ADVERTISER_IDS",
+ "value": "MOBILE_ADVERTISER_IDS"
+ },
+ {
+ "name": "FB_EVENT_SIGNALS",
+ "value": "FB_EVENT_SIGNALS"
+ },
+ {
+ "name": "EXTERNAL_IDS",
+ "value": "EXTERNAL_IDS"
+ },
+ {
+ "name": "MULTI_HASHES",
+ "value": "MULTI_HASHES"
+ },
+ {
+ "name": "TOKENS",
+ "value": "TOKENS"
+ },
+ {
+ "name": "EXTERNAL_IDS_MIX",
+ "value": "EXTERNAL_IDS_MIX"
+ },
+ {
+ "name": "WEB_PIXEL_HITS",
+ "value": "WEB_PIXEL_HITS"
+ },
+ {
+ "name": "MOBILE_APP_EVENTS",
+ "value": "MOBILE_APP_EVENTS"
+ },
+ {
+ "name": "MOBILE_APP_COMBINATION_EVENTS",
+ "value": "MOBILE_APP_COMBINATION_EVENTS"
+ },
+ {
+ "name": "VIDEO_EVENTS",
+ "value": "VIDEO_EVENTS"
+ },
+ {
+ "name": "WEB_PIXEL_COMBINATION_EVENTS",
+ "value": "WEB_PIXEL_COMBINATION_EVENTS"
+ },
+ {
+ "name": "IG_BUSINESS_EVENTS",
+ "value": "IG_BUSINESS_EVENTS"
+ },
+ {
+ "name": "MULTI_DATA_EVENTS",
+ "value": "MULTI_DATA_EVENTS"
+ },
+ {
+ "name": "STORE_VISIT_EVENTS",
+ "value": "STORE_VISIT_EVENTS"
+ },
+ {
+ "name": "INSTANT_ARTICLE_EVENTS",
+ "value": "INSTANT_ARTICLE_EVENTS"
+ },
+ {
+ "name": "ENGAGEMENT_EVENT_USERS",
+ "value": "ENGAGEMENT_EVENT_USERS"
+ },
+ {
+ "name": "FACEBOOK_WIFI_EVENTS",
+ "value": "FACEBOOK_WIFI_EVENTS"
+ },
+ {
+ "name": "CUSTOM_AUDIENCE_USERS",
+ "value": "CUSTOM_AUDIENCE_USERS"
+ },
+ {
+ "name": "S_EXPR",
+ "value": "S_EXPR"
+ },
+ {
+ "name": "DYNAMIC_RULE",
+ "value": "DYNAMIC_RULE"
+ },
+ {
+ "name": "CONVERSION_PIXEL_HITS",
+ "value": "CONVERSION_PIXEL_HITS"
+ },
+ {
+ "name": "APP_USERS",
+ "value": "APP_USERS"
+ },
+ {
+ "name": "CAMPAIGN_CONVERSIONS",
+ "value": "CAMPAIGN_CONVERSIONS"
+ },
+ {
+ "name": "WEB_PIXEL_HITS_CUSTOM_AUDIENCE_USERS",
+ "value": "WEB_PIXEL_HITS_CUSTOM_AUDIENCE_USERS"
+ },
+ {
+ "name": "MOBILE_APP_CUSTOM_AUDIENCE_USERS",
+ "value": "MOBILE_APP_CUSTOM_AUDIENCE_USERS"
+ },
+ {
+ "name": "VIDEO_EVENT_USERS",
+ "value": "VIDEO_EVENT_USERS"
+ },
+ {
+ "name": "FB_PIXEL_HITS",
+ "value": "FB_PIXEL_HITS"
+ },
+ {
+ "name": "IG_PROMOTED_POST",
+ "value": "IG_PROMOTED_POST"
+ },
+ {
+ "name": "PLACE_VISITS",
+ "value": "PLACE_VISITS"
+ },
+ {
+ "name": "OFFLINE_EVENT_USERS",
+ "value": "OFFLINE_EVENT_USERS"
+ },
+ {
+ "name": "EXPANDED_AUDIENCE",
+ "value": "EXPANDED_AUDIENCE"
+ },
+ {
+ "name": "SEED_LIST",
+ "value": "SEED_LIST"
+ },
+ {
+ "name": "PARTNER_CATEGORY_USERS",
+ "value": "PARTNER_CATEGORY_USERS"
+ },
+ {
+ "name": "PAGE_SMART_AUDIENCE",
+ "value": "PAGE_SMART_AUDIENCE"
+ },
+ {
+ "name": "MULTICOUNTRY_COMBINATION",
+ "value": "MULTICOUNTRY_COMBINATION"
+ },
+ {
+ "name": "PLATFORM_USERS",
+ "value": "PLATFORM_USERS"
+ },
+ {
+ "name": "MULTI_EVENT_SOURCE",
+ "value": "MULTI_EVENT_SOURCE"
+ },
+ {
+ "name": "SMART_AUDIENCE",
+ "value": "SMART_AUDIENCE"
+ },
+ {
+ "name": "LOOKALIKE_PLATFORM",
+ "value": "LOOKALIKE_PLATFORM"
+ },
+ {
+ "name": "SIGNAL_SOURCE",
+ "value": "SIGNAL_SOURCE"
+ },
+ {
+ "name": "MAIL_CHIMP_EMAIL_HASHES",
+ "value": "MAIL_CHIMP_EMAIL_HASHES"
+ },
+ {
+ "name": "CONSTANT_CONTACTS_EMAIL_HASHES",
+ "value": "CONSTANT_CONTACTS_EMAIL_HASHES"
+ },
+ {
+ "name": "COPY_PASTE_EMAIL_HASHES",
+ "value": "COPY_PASTE_EMAIL_HASHES"
+ },
+ {
+ "name": "CONTACT_IMPORTER",
+ "value": "CONTACT_IMPORTER"
+ },
+ {
+ "name": "DATA_FILE",
+ "value": "DATA_FILE"
+ },
+ {
+ "name": "NA",
+ "value": "NA"
+ }
+ ],
+ "defaultOption": {
+ "name": "NA",
+ "value": "NA"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/firebase/db-config.json b/src/configurations/destinations/firebase/db-config.json
new file mode 100644
index 000000000..f38d092b0
--- /dev/null
+++ b/src/configurations/destinations/firebase/db-config.json
@@ -0,0 +1,21 @@
+{
+ "name": "FIREBASE",
+ "displayName": "Firebase",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": ["blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["android", "ios", "unity", "reactnative", "flutter"],
+ "destConfig": {
+ "defaultConfig": ["blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "unity": ["useNativeSDK"],
+ "reactnative": ["useNativeSDK"],
+ "flutter": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/firebase/metadata.json b/src/configurations/destinations/firebase/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/firebase/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/firebase/schema.json b/src/configurations/destinations/firebase/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/firebase/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/firebase/ui-config.json b/src/configurations/destinations/firebase/ui-config.json
new file mode 100644
index 000000000..556c3f756
--- /dev/null
+++ b/src/configurations/destinations/firebase/ui-config.json
@@ -0,0 +1,70 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Native SDK",
+ "fields": [
+ {
+ "type": "defaultCheckbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/firehose/db-config.json b/src/configurations/destinations/firehose/db-config.json
new file mode 100644
index 000000000..b981d4d63
--- /dev/null
+++ b/src/configurations/destinations/firehose/db-config.json
@@ -0,0 +1,35 @@
+{
+ "name": "FIREHOSE",
+ "displayName": "Amazon Kinesis Firehose",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias", "group"],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "iamRoleARN",
+ "roleBasedAuth",
+ "mapEvents",
+ "region",
+ "accessKeyID",
+ "accessKey"
+ ]
+ },
+ "secretKeys": ["accessKeyID", "accessKey"]
+ }
+}
diff --git a/src/configurations/destinations/firehose/metadata.json b/src/configurations/destinations/firehose/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/firehose/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/firehose/schema.json b/src/configurations/destinations/firehose/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/firehose/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/firehose/ui_config.json b/src/configurations/destinations/firehose/ui-config.json
similarity index 100%
rename from data/destinations/firehose/ui_config.json
rename to src/configurations/destinations/firehose/ui-config.json
diff --git a/data/destinations/freshmarketer/db_config.json b/src/configurations/destinations/freshmarketer/db-config.json
similarity index 100%
rename from data/destinations/freshmarketer/db_config.json
rename to src/configurations/destinations/freshmarketer/db-config.json
diff --git a/src/configurations/destinations/freshmarketer/metadata.json b/src/configurations/destinations/freshmarketer/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/freshmarketer/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/freshmarketer/schema.json b/src/configurations/destinations/freshmarketer/schema.json
similarity index 100%
rename from data/destinations/freshmarketer/schema.json
rename to src/configurations/destinations/freshmarketer/schema.json
diff --git a/data/destinations/freshmarketer/ui_config.json b/src/configurations/destinations/freshmarketer/ui-config.json
similarity index 100%
rename from data/destinations/freshmarketer/ui_config.json
rename to src/configurations/destinations/freshmarketer/ui-config.json
diff --git a/data/destinations/freshsales/db_config.json b/src/configurations/destinations/freshsales/db-config.json
similarity index 100%
rename from data/destinations/freshsales/db_config.json
rename to src/configurations/destinations/freshsales/db-config.json
diff --git a/src/configurations/destinations/freshsales/metadata.json b/src/configurations/destinations/freshsales/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/freshsales/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/freshsales/schema.json b/src/configurations/destinations/freshsales/schema.json
similarity index 100%
rename from data/destinations/freshsales/schema.json
rename to src/configurations/destinations/freshsales/schema.json
diff --git a/data/destinations/freshsales/ui_config.json b/src/configurations/destinations/freshsales/ui-config.json
similarity index 100%
rename from data/destinations/freshsales/ui_config.json
rename to src/configurations/destinations/freshsales/ui-config.json
diff --git a/src/configurations/destinations/fullstory/db-config.json b/src/configurations/destinations/fullstory/db-config.json
new file mode 100644
index 000000000..1b68d1d95
--- /dev/null
+++ b/src/configurations/destinations/fullstory/db-config.json
@@ -0,0 +1,32 @@
+{
+ "name": "FULLSTORY",
+ "displayName": "Fullstory",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "fs_debug_mode",
+ "fs_org",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web", "android", "ios"],
+ "destConfig": {
+ "defaultConfig": [
+ "fs_org",
+ "fs_debug_mode",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/fullstory/metadata.json b/src/configurations/destinations/fullstory/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/fullstory/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/fullstory/schema.json b/src/configurations/destinations/fullstory/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/fullstory/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/fullstory/ui_config.json b/src/configurations/destinations/fullstory/ui-config.json
similarity index 100%
rename from data/destinations/fullstory/ui_config.json
rename to src/configurations/destinations/fullstory/ui-config.json
diff --git a/data/destinations/ga/db_config.json b/src/configurations/destinations/ga/db-config.json
similarity index 100%
rename from data/destinations/ga/db_config.json
rename to src/configurations/destinations/ga/db-config.json
diff --git a/src/configurations/destinations/ga/metadata.json b/src/configurations/destinations/ga/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/ga/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/ga/schema.json b/src/configurations/destinations/ga/schema.json
new file mode 100644
index 000000000..f37b20f3b
--- /dev/null
+++ b/src/configurations/destinations/ga/schema.json
@@ -0,0 +1,226 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["trackingID"],
+ "properties": {
+ "trackingID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(UA|YT|MO)-\\d+-\\d{0,100}$)"
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "doubleClick": {
+ "type": "boolean"
+ },
+ "enhancedLinkAttribution": {
+ "type": "boolean"
+ },
+ "includeSearch": {
+ "type": "boolean"
+ },
+ "enableServerSideIdentify": {
+ "type": "boolean"
+ },
+ "serverSideIdentifyEventCategory": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
+ },
+ "serverSideIdentifyEventAction": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
+ },
+ "disableMd5": {
+ "type": "boolean"
+ },
+ "anonymizeIp": {
+ "type": "boolean"
+ },
+ "enhancedEcommerce": {
+ "type": "boolean"
+ },
+ "nonInteraction": {
+ "type": "boolean"
+ },
+ "sendUserId": {
+ "type": "boolean"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "trackCategorizedPages": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "trackNamedPages": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "sampleRate": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ },
+ "siteSpeedSampleRate": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ },
+ "resetCustomDimensionsOnPage": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "resetCustomDimensionsOnPage": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ },
+ "setAllMappedProps": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "domain": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
+ }
+ }
+ },
+ "optimize": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)"
+ }
+ }
+ },
+ "useGoogleAmpClientId": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "namedTracker": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "contentGroupings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "dimensions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/ga/ui_config.json b/src/configurations/destinations/ga/ui-config.json
similarity index 100%
rename from data/destinations/ga/ui_config.json
rename to src/configurations/destinations/ga/ui-config.json
diff --git a/src/configurations/destinations/ga360/db-config.json b/src/configurations/destinations/ga360/db-config.json
new file mode 100644
index 000000000..39f15958a
--- /dev/null
+++ b/src/configurations/destinations/ga360/db-config.json
@@ -0,0 +1,87 @@
+{
+ "name": "GA360",
+ "displayName": "Google Analytics 360",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [
+ "trackingID",
+ "doubleClick",
+ "enhancedLinkAttribution",
+ "includeSearch",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "sampleRate",
+ "siteSpeedSampleRate",
+ "dimensions",
+ "metrics",
+ "resetCustomDimensionsOnPage",
+ "setAllMappedProps",
+ "contentGroupings",
+ "anonymizeIp",
+ "domain",
+ "enhancedEcommerce",
+ "nonInteraction",
+ "optimize",
+ "sendUserId",
+ "useGoogleAmpClientId",
+ "namedTracker",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "trackingID",
+ "customMappings",
+ "doubleClick",
+ "enhancedLinkAttribution",
+ "includeSearch",
+ "dimensions",
+ "metrics",
+ "contentGroupings",
+ "enableServerSideIdentify",
+ "serverSideIdentifyEventCategory",
+ "serverSideIdentifyEventAction",
+ "anonymizeIp",
+ "enhancedEcommerce",
+ "nonInteraction",
+ "sendUserId",
+ "disableMd5",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": [
+ "useNativeSDK",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "sampleRate",
+ "siteSpeedSampleRate",
+ "resetCustomDimensionsOnPage",
+ "setAllMappedProps",
+ "domain",
+ "optimize",
+ "useGoogleAmpClientId",
+ "namedTracker",
+ "oneTrustCookieCategories"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/ga360/metadata.json b/src/configurations/destinations/ga360/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/ga360/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/ga360/schema.json b/src/configurations/destinations/ga360/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/ga360/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/ga360/ui_config.json b/src/configurations/destinations/ga360/ui-config.json
similarity index 100%
rename from data/destinations/ga360/ui_config.json
rename to src/configurations/destinations/ga360/ui-config.json
diff --git a/data/destinations/ga4/db_config.json b/src/configurations/destinations/ga4/db-config.json
similarity index 100%
rename from data/destinations/ga4/db_config.json
rename to src/configurations/destinations/ga4/db-config.json
diff --git a/src/configurations/destinations/ga4/metadata.json b/src/configurations/destinations/ga4/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/ga4/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/ga4/schema.json b/src/configurations/destinations/ga4/schema.json
similarity index 100%
rename from data/destinations/ga4/schema.json
rename to src/configurations/destinations/ga4/schema.json
diff --git a/data/destinations/ga4/ui_config.json b/src/configurations/destinations/ga4/ui-config.json
similarity index 100%
rename from data/destinations/ga4/ui_config.json
rename to src/configurations/destinations/ga4/ui-config.json
diff --git a/src/configurations/destinations/gainsight/db-config.json b/src/configurations/destinations/gainsight/db-config.json
new file mode 100644
index 000000000..3bbc94468
--- /dev/null
+++ b/src/configurations/destinations/gainsight/db-config.json
@@ -0,0 +1,39 @@
+{
+ "name": "GAINSIGHT",
+ "displayName": "Gainsight",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["group", "identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "accessKey",
+ "sharedSecret",
+ "tenantId",
+ "domain",
+ "personMap",
+ "companyMap",
+ "topicName",
+ "eventNameMap",
+ "eventVersionMap",
+ "contractId"
+ ]
+ },
+ "secretKeys": ["accessKey", "sharedSecret"]
+ }
+}
diff --git a/src/configurations/destinations/gainsight/metadata.json b/src/configurations/destinations/gainsight/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/gainsight/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/gainsight/schema.json b/src/configurations/destinations/gainsight/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/gainsight/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/gainsight/ui-config.json b/src/configurations/destinations/gainsight/ui-config.json
new file mode 100644
index 000000000..e01ce80a9
--- /dev/null
+++ b/src/configurations/destinations/gainsight/ui-config.json
@@ -0,0 +1,122 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Gainsight Accesskey",
+ "value": "accessKey",
+ "regex": ".*",
+ "footerNote": "Required for identify and group calls",
+ "required": false,
+ "placeholder": "e.g: 94f71917dald93k90caa4c-us20"
+ },
+ {
+ "type": "textInput",
+ "label": "Gainsight Custom Domain or Subdomain",
+ "value": "domain",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Domain or Subdomain name",
+ "required": true,
+ "placeholder": "e.g: example-domain.gainsightcloud.com"
+ }
+ ]
+ },
+ {
+ "title": "Person Field Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder payload property to Custom Gainsight Field",
+ "labelLeft": "Rudder Payload Field",
+ "labelRight": "Gainsight Payload Field",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: rating",
+ "placeholderRight": "e.g: rating__gc",
+ "value": "personMap"
+ }
+ ]
+ },
+ {
+ "title": "Company Field Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder payload property to Custom Gainsight Field",
+ "labelLeft": "Rudder Payload Field",
+ "labelRight": "Gainsight Payload Field",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: rating",
+ "placeholderRight": "e.g: rating__gc",
+ "value": "companyMap"
+ }
+ ]
+ },
+ {
+ "title": "Gainsight Event Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Events Shared Secret",
+ "value": "sharedSecret",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g: 7869235jafasqpzxu-f71917dald93k90caa4c",
+ "footerNote": "Required to work with Gainsight Events Framework"
+ },
+ {
+ "type": "textInput",
+ "label": "Tenant ID",
+ "value": "tenantId",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g: jafasqpzxu-f71917dald93k90caa4c",
+ "footerNote": "Required to work with Gainsight Events Framework"
+ },
+ {
+ "type": "textInput",
+ "label": "Contract ID",
+ "value": "contractId",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g: event contract ID"
+ },
+ {
+ "type": "textInput",
+ "label": "Topic Name",
+ "value": "topicName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Topic Name",
+ "required": false,
+ "placeholder": "e.g: Zendesk Tickets",
+ "footerNote": "Required to work with Gainsight Events Framework"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map RudderStack Event to Gainsight Event",
+ "labelLeft": "Rudder Event Name",
+ "labelRight": "Gainsight Event Name",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Clicked",
+ "placeholderRight": "e.g: GS Product Clicked",
+ "value": "eventNameMap"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map RudderStack Event to Gainsight Event Version",
+ "labelLeft": "Rudder Event Name",
+ "labelRight": "Gainsight Event Version",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Clicked",
+ "placeholderRight": "e.g: 1.0.0",
+ "value": "eventVersionMap"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/gainsight_px/db-config.json b/src/configurations/destinations/gainsight_px/db-config.json
new file mode 100644
index 000000000..6a7b20aaf
--- /dev/null
+++ b/src/configurations/destinations/gainsight_px/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "GAINSIGHT_PX",
+ "displayName": "Gainsight PX",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["group", "identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "productTagKey",
+ "userAttributeMap",
+ "accountAttributeMap",
+ "globalContextMap"
+ ]
+ },
+ "secretKeys": ["apiKey", "productTagKey"]
+ }
+}
diff --git a/src/configurations/destinations/gainsight_px/metadata.json b/src/configurations/destinations/gainsight_px/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/gainsight_px/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/gainsight_px/schema.json b/src/configurations/destinations/gainsight_px/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/gainsight_px/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/gainsight_px/ui-config.json b/src/configurations/destinations/gainsight_px/ui-config.json
new file mode 100644
index 000000000..fad274e36
--- /dev/null
+++ b/src/configurations/destinations/gainsight_px/ui-config.json
@@ -0,0 +1,81 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": ".*",
+ "footerNote": "Your Gainsight PX API Key",
+ "required": true,
+ "placeholder": "e.g: 94f71917dald93k90caa4c-us20143",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Product Tag Key",
+ "value": "productTagKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Product Tag Key",
+ "required": true,
+ "placeholder": "e.g: AP-XXXXXX-1",
+ "footerNote": "Your Webapp Product Tag Key",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "User Attribute Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder payload property to Custom User Attribute",
+ "labelLeft": "Rudder Payload Field",
+ "labelRight": "Custom Attribute",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: rating",
+ "placeholderRight": "e.g: Rating",
+ "footerNote": "Provide the Custom Attribute API Name",
+ "value": "userAttributeMap"
+ }
+ ]
+ },
+ {
+ "title": "Account Attribute Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder payload property to Custom Account Attribute",
+ "labelLeft": "Rudder Payload Field",
+ "labelRight": "Custom Attribute",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: revenue",
+ "placeholderRight": "e.g: annualRevenue",
+ "footerNote": "Provide the Custom Attribute API Name",
+ "value": "accountAttributeMap"
+ }
+ ]
+ },
+ {
+ "title": "Global Context Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Provide Key Value pairs for Global Context Object",
+ "labelLeft": "Key",
+ "labelRight": "Value",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: projectId",
+ "placeholderRight": "e.g: p-123",
+ "footerNote": "Used with Custom Events",
+ "value": "globalContextMap"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/gcs/db-config.json b/src/configurations/destinations/gcs/db-config.json
new file mode 100644
index 000000000..7950a52f6
--- /dev/null
+++ b/src/configurations/destinations/gcs/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "GCS",
+ "displayName": "Google Cloud Storage",
+ "config": {
+ "transformAt": "none",
+ "transformAtV1": "none",
+ "saveDestinationResponse": false,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "destConfig": {
+ "defaultConfig": ["bucketName", "prefix", "credentials"]
+ },
+ "secretKeys": ["credentials"]
+ }
+}
diff --git a/src/configurations/destinations/gcs/metadata.json b/src/configurations/destinations/gcs/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/gcs/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/gcs/schema.json b/src/configurations/destinations/gcs/schema.json
new file mode 100644
index 000000000..7f85eea9c
--- /dev/null
+++ b/src/configurations/destinations/gcs/schema.json
@@ -0,0 +1,22 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "additionalProperties": true,
+ "required": ["bucketName"],
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/gcs/ui-config.json b/src/configurations/destinations/gcs/ui-config.json
new file mode 100644
index 000000000..e35f7c924
--- /dev/null
+++ b/src/configurations/destinations/gcs/ui-config.json
@@ -0,0 +1,37 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Google Cloud Storage Bucket Name",
+ "value": "bucketName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Google Cloud Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: gcs-event-logs"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "textareaInput",
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "required": false,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/gcs_datalake/db-config.json b/src/configurations/destinations/gcs_datalake/db-config.json
new file mode 100644
index 000000000..a46577ca1
--- /dev/null
+++ b/src/configurations/destinations/gcs_datalake/db-config.json
@@ -0,0 +1,38 @@
+{
+ "name": "GCS_DATALAKE",
+ "displayName": "Google Cloud Storage Datalake",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "bucketName",
+ "prefix",
+ "namespace",
+ "tableSuffix",
+ "timeWindowLayout",
+ "credentials",
+ "syncFrequency",
+ "syncStartAt"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/gcs_datalake/metadata.json b/src/configurations/destinations/gcs_datalake/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/gcs_datalake/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/gcs_datalake/schema.json b/src/configurations/destinations/gcs_datalake/schema.json
new file mode 100644
index 000000000..69c2cdb50
--- /dev/null
+++ b/src/configurations/destinations/gcs_datalake/schema.json
@@ -0,0 +1,43 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["bucketName", "credentials"],
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "tableSuffix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "timeWindowLayout": {
+ "type": "string",
+ "pattern": "^(2006/01/02/15|dt=2006-01-02|year=2006|year=2006/month=01|year=2006/month=01/day=02|year=2006/month=01/day=02/hour=15)$",
+ "default": "2006/01/02/15"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/gcs_datalake/ui-config.json b/src/configurations/destinations/gcs_datalake/ui-config.json
new file mode 100644
index 000000000..a12189561
--- /dev/null
+++ b/src/configurations/destinations/gcs_datalake/ui-config.json
@@ -0,0 +1,143 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "GCS Storage Bucket Name",
+ "labelNote": "GCS Bucket to store your event data",
+ "value": "bucketName",
+ "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: gcs-event-logs",
+ "footerNote": "Please make sure the bucket exists in your GCS"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "labelNote": "If configured, all data pushed by rudderstack will be at https://storage.googleapis.com///",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "labelNote": "Schema name for the warehouse where the tables are created",
+ "value": "namespace",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "regexErrorMessage": "Invalid Namespace",
+ "required": false,
+ "placeholder": "e.g: RUDDER_NAMESPACE",
+ "footerNote": "All data for the destination would be pushed to https://storage.googleapis.com///rudder-datalake/."
+ },
+ {
+ "type": "textInput",
+ "label": "Table suffix (optional)",
+ "labelNote": "If configured, table data would be pushed to /",
+ "value": "tableSuffix",
+ "regex": ".*",
+ "regexErrorMessage": "Invalid Table suffix path",
+ "required": false,
+ "placeholder": "e.g: TABLE_SUFFIX_PATH"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Choose time window layout",
+ "value": "timeWindowLayout",
+ "options": [
+ {
+ "name": "Default (YYYY/MM/DD/HH)",
+ "value": "2006/01/02/15"
+ },
+ {
+ "name": "Upto Date (dt=YYYY-MM-DD)",
+ "value": "dt=2006-01-02"
+ },
+ {
+ "name": "Upto Year (year=YYYY)",
+ "value": "year=2006"
+ },
+ {
+ "name": "Upto Month (year=YYYY/month=MM)",
+ "value": "year=2006/month=01"
+ },
+ {
+ "name": "Upto Day (year=YYYY/month=MM/day=DD)",
+ "value": "year=2006/month=01/day=02"
+ },
+ {
+ "name": "Upto Hour (year=YYYY/month=MM/day=DD/hour=HH)",
+ "value": "year=2006/month=01/day=02/hour=15"
+ }
+ ],
+ "defaultOption": {
+ "name": "Default (YYYY/MM/DD/HH)",
+ "value": "2006/01/02/15"
+ },
+ "required": false
+ },
+ {
+ "type": "textareaInput",
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/google_adwords_enhanced_conversions/db_config.json b/src/configurations/destinations/google_adwords_enhanced_conversions/db-config.json
similarity index 100%
rename from data/destinations/google_adwords_enhanced_conversions/db_config.json
rename to src/configurations/destinations/google_adwords_enhanced_conversions/db-config.json
diff --git a/src/configurations/destinations/google_adwords_enhanced_conversions/metadata.json b/src/configurations/destinations/google_adwords_enhanced_conversions/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_enhanced_conversions/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_adwords_enhanced_conversions/schema.json b/src/configurations/destinations/google_adwords_enhanced_conversions/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_enhanced_conversions/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/google_adwords_enhanced_conversions/ui-config.json b/src/configurations/destinations/google_adwords_enhanced_conversions/ui-config.json
new file mode 100644
index 000000000..f206c2e56
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_enhanced_conversions/ui-config.json
@@ -0,0 +1,64 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Customer ID",
+ "value": "customerId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Customer Id",
+ "required": true,
+ "placeholder": "e.g: 9693429833"
+ },
+ {
+ "type": "checkbox",
+ "label": "Sub Account",
+ "value": "subAccount",
+ "required": false,
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "label": "Login Customer ID",
+ "preRequisiteField": [
+ {
+ "name": "subAccount",
+ "selectedValue": true
+ }
+ ],
+ "value": "loginCustomerId",
+ "regex": "^(.{1,100})$",
+ "required": true,
+ "footerNote": "If Customer-Id is from a sub account then provide customerId of manager account"
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "listOfConversions",
+ "label": "List of Conversion",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "conversions",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ },
+ {
+ "type": "checkbox",
+ "label": "Hashing required",
+ "value": "requireHash",
+ "default": true,
+ "footerNote": "If this option is set to on we will encrypt mail, phoneNumber, firstName, lastName and streetAddress"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/google_adwords_offline_conversions/db_config.json b/src/configurations/destinations/google_adwords_offline_conversions/db-config.json
similarity index 100%
rename from data/destinations/google_adwords_offline_conversions/db_config.json
rename to src/configurations/destinations/google_adwords_offline_conversions/db-config.json
diff --git a/src/configurations/destinations/google_adwords_offline_conversions/metadata.json b/src/configurations/destinations/google_adwords_offline_conversions/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_offline_conversions/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_adwords_offline_conversions/schema.json b/src/configurations/destinations/google_adwords_offline_conversions/schema.json
new file mode 100644
index 000000000..2b519e5df
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_offline_conversions/schema.json
@@ -0,0 +1,86 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["customerId"],
+ "properties": {
+ "customerId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "subAccount": {
+ "type": "boolean"
+ },
+ "loginCustomerId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventsToOfflineConversionsTypeMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventsToConversionsNamesMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "customVariables": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "UserIdentifierSource": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(none|UNSPECIFIED|UNKNOWN|FIRST_PARTY|THIRD_PARTY)$"
+ },
+ "conversionEnvironment": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(none|UNSPECIFIED|UNKNOWN|APP|WEB)$"
+ },
+ "defaultUserIdentifier": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(email|phone)$"
+ },
+ "enableServerSideIdentify": {
+ "type": "boolean"
+ },
+ "validateOnly": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_adwords_offline_conversions/ui-config.json b/src/configurations/destinations/google_adwords_offline_conversions/ui-config.json
new file mode 100644
index 000000000..afb23e150
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_offline_conversions/ui-config.json
@@ -0,0 +1,187 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Customer ID",
+ "value": "customerId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Customer Id",
+ "required": true,
+ "placeholder": "e.g: 6293429833"
+ },
+ {
+ "type": "checkbox",
+ "label": "Sub Account",
+ "value": "subAccount",
+ "required": false,
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "label": "Login Customer ID",
+ "preRequisiteField": [
+ {
+ "name": "subAccount",
+ "selectedValue": true
+ }
+ ],
+ "value": "loginCustomerId",
+ "regex": "^(.{1,100})$",
+ "required": true,
+ "footerNote": "If Customer-Id is from a sub account then provide customerId of manager account"
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map your events with Google Ads Offline Conversions",
+ "labelLeft": "RudderStack event names",
+ "labelRight": "Google ads offline conversions",
+ "value": "eventsToOfflineConversionsTypeMapping",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g: Sign up completed",
+ "options": [
+ {
+ "name": "Click",
+ "value": "click"
+ },
+ {
+ "name": "Call",
+ "value": "call"
+ }
+ ]
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map your Google Ads Conversions Names",
+ "labelLeft": "RudderStack event names",
+ "labelRight": "Google Ads conversion names",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Sign up completed",
+ "placeholderRight": "e.g: App Sign-up",
+ "value": "eventsToConversionsNamesMapping"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map your variable names to custom Google Ads variables.",
+ "labelLeft": "custom variable names",
+ "labelRight": "Google Ads custom variables",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. value",
+ "placeholderRight": "eg: revenue",
+ "value": "customVariables"
+ },
+ {
+ "type": "singleSelect",
+ "label": "User Identifier Source",
+ "value": "UserIdentifierSource",
+ "required": false,
+ "footerNote": "Source of the user identifier",
+ "options": [
+ {
+ "name": "None",
+ "value": "none"
+ },
+ {
+ "name": "UNSPECIFIED",
+ "value": "UNSPECIFIED"
+ },
+ {
+ "name": "UNKNOWN",
+ "value": "UNKNOWN"
+ },
+ {
+ "name": "FIRST_PARTY",
+ "value": "FIRST_PARTY"
+ },
+ {
+ "name": "THIRD_PARTY",
+ "value": "THIRD_PARTY"
+ }
+ ],
+ "defaultOption": {
+ "name": "None",
+ "value": "none"
+ }
+ },
+ {
+ "type": "singleSelect",
+ "label": "Conversion Environment",
+ "value": "conversionEnvironment",
+ "required": false,
+ "footerNote": "The environment this conversion was recorded on. e.g. App or Web.",
+ "options": [
+ {
+ "name": "None",
+ "value": "none"
+ },
+ {
+ "name": "UNSPECIFIED",
+ "value": "UNSPECIFIED"
+ },
+ {
+ "name": "UNKNOWN",
+ "value": "UNKNOWN"
+ },
+ {
+ "name": "APP",
+ "value": "APP"
+ },
+ {
+ "name": "WEB",
+ "value": "WEB"
+ }
+ ],
+ "defaultOption": {
+ "name": "None",
+ "value": "none"
+ }
+ },
+ {
+ "type": "singleSelect",
+ "label": "Default user identifier for click conversions",
+ "value": "defaultUserIdentifier",
+ "footerNote": "The user identifier for click conversions matching",
+ "options": [
+ {
+ "name": "Email",
+ "value": "email"
+ },
+ {
+ "name": "Phone number",
+ "value": "phone"
+ }
+ ],
+ "defaultOption": {
+ "name": "Email",
+ "value": "email"
+ }
+ },
+ {
+ "type": "checkbox",
+ "label": "Hash User Identifying Information (SHA-256)",
+ "value": "hashUserIdentifier",
+ "default": true,
+ "footerNote": "To hash User identifying information like email, phone number, first name, last name and address using SHA-256."
+ },
+ {
+ "type": "checkbox",
+ "label": "Validate Only",
+ "value": "validateOnly",
+ "default": false,
+ "footerNote": "Enable this option to only validate the request"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/google_adwords_remarketing_lists/db_config.json b/src/configurations/destinations/google_adwords_remarketing_lists/db-config.json
similarity index 100%
rename from data/destinations/google_adwords_remarketing_lists/db_config.json
rename to src/configurations/destinations/google_adwords_remarketing_lists/db-config.json
diff --git a/src/configurations/destinations/google_adwords_remarketing_lists/metadata.json b/src/configurations/destinations/google_adwords_remarketing_lists/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_remarketing_lists/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_adwords_remarketing_lists/schema.json b/src/configurations/destinations/google_adwords_remarketing_lists/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_remarketing_lists/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/google_adwords_remarketing_lists/ui-config.json b/src/configurations/destinations/google_adwords_remarketing_lists/ui-config.json
new file mode 100644
index 000000000..71744f75b
--- /dev/null
+++ b/src/configurations/destinations/google_adwords_remarketing_lists/ui-config.json
@@ -0,0 +1,112 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "List ID",
+ "value": "listId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Google remarketing list ID",
+ "required": true,
+ "placeholder": "e.g: 7692349833"
+ },
+ {
+ "type": "textInput",
+ "label": "Customer ID",
+ "value": "customerId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Customer ID",
+ "required": true,
+ "placeholder": "e.g: 9693429833"
+ },
+ {
+ "type": "checkbox",
+ "label": "Sub Account",
+ "value": "subAccount",
+ "required": false,
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "label": "Login Customer ID",
+ "preRequisiteField": [
+ {
+ "name": "subAccount",
+ "selectedValue": true
+ }
+ ],
+ "value": "loginCustomerId",
+ "regex": "^(.{0,100})$",
+ "required": true,
+ "footerNote": "If customer ID is from a sub account, then provide the customer ID of manager account"
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "List Type",
+ "value": "typeOfList",
+ "mode": "single",
+ "options": [
+ {
+ "name": "General",
+ "value": "General"
+ },
+ {
+ "name": "User ID",
+ "value": "userID"
+ },
+ {
+ "name": "Mobile Device ID",
+ "value": "mobileDeviceID"
+ }
+ ],
+ "defaultOption": {
+ "value": "General"
+ }
+ },
+ {
+ "type": "checkbox",
+ "label": "Hash Required",
+ "value": "isHashRequired",
+ "default": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Schema Fields",
+ "preRequisiteField": [
+ {
+ "name": "typeOfList",
+ "selectedValue": "General"
+ }
+ ],
+ "value": "userSchema",
+ "mode": "multiple",
+ "options": [
+ {
+ "name": "Email",
+ "value": "email"
+ },
+ {
+ "name": "Phone Number",
+ "value": "phone"
+ },
+ {
+ "name": "Address Info",
+ "value": "addressInfo"
+ }
+ ],
+ "defaultOption": {
+ "name": "Email",
+ "value": ["email"]
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/google_cloud_function/db-config.json b/src/configurations/destinations/google_cloud_function/db-config.json
new file mode 100644
index 000000000..3137d6cff
--- /dev/null
+++ b/src/configurations/destinations/google_cloud_function/db-config.json
@@ -0,0 +1,41 @@
+{
+ "name": "GOOGLE_CLOUD_FUNCTION",
+ "displayName": "Google Cloud Function",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "triggerType",
+ "googleCloudFunctionUrl",
+ "gcloudAuthorization",
+ "apiKeyId",
+ "enableBatchInput"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "amp",
+ "android",
+ "cordova",
+ "cloud",
+ "flutter",
+ "ios",
+ "reactnative",
+ "unity",
+ "warehouse",
+ "web"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias", "group"],
+ "destConfig": {
+ "defaultConfig": [
+ "triggerType",
+ "googleCloudFunctionUrl",
+ "gcloudAuthorization",
+ "apiKeyId",
+ "enableBatchInput",
+ "maxBatchSize"
+ ]
+ },
+ "secretKeys": ["apiKeyId", "gcloudAuthorization"]
+ }
+}
diff --git a/src/configurations/destinations/google_cloud_function/metadata.json b/src/configurations/destinations/google_cloud_function/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/google_cloud_function/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_cloud_function/schema.json b/src/configurations/destinations/google_cloud_function/schema.json
new file mode 100644
index 000000000..eef8a83b5
--- /dev/null
+++ b/src/configurations/destinations/google_cloud_function/schema.json
@@ -0,0 +1,67 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["triggerType"],
+ "properties": {
+ "apiKeyId": {
+ "type": "string"
+ },
+ "enableBatchInput": {
+ "type": "boolean"
+ },
+ "maxBatchSize": {
+ "type": "string",
+ "pattern": "^[1-9]\\d*$"
+ },
+ "triggerType": {
+ "type": "string",
+ "pattern": "^(Http|Https)$"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "triggerType": {
+ "const": "Http"
+ }
+ },
+ "required": ["triggerType"]
+ },
+ "then": {
+ "properties": {
+ "googleCloudFunctionUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ }
+ },
+ "required": ["googleCloudFunctionUrl"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "triggerType": {
+ "const": "Https"
+ }
+ },
+ "required": ["triggerType"]
+ },
+ "then": {
+ "properties": {
+ "googleCloudFunctionUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ },
+ "gcloudAuthorization": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["googleCloudFunctionUrl", "gcloudAuthorization"]
+ }
+ }
+ ]
+ }
+}
diff --git a/src/configurations/destinations/google_cloud_function/ui-config.json b/src/configurations/destinations/google_cloud_function/ui-config.json
new file mode 100644
index 000000000..2ec9b6c6d
--- /dev/null
+++ b/src/configurations/destinations/google_cloud_function/ui-config.json
@@ -0,0 +1,107 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Choose your Trigger Type ",
+ "value": "triggerType",
+ "options": [
+ {
+ "name": "HTTP",
+ "value": "Http"
+ },
+ {
+ "name": "HTTPS",
+ "value": "Https"
+ }
+ ],
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "triggerType",
+ "selectedValue": "Http"
+ }
+ ],
+ "label": "URL",
+ "value": "googleCloudFunctionUrl",
+ "required": true,
+ "placeholder": "http://www.abcd.com",
+ "regex": "(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$",
+ "footerNote": "The Url given under Trigger section when you create Google Cloud Function"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "triggerType",
+ "selectedValue": "Https"
+ }
+ ],
+ "label": "URL",
+ "value": "googleCloudFunctionUrl",
+ "required": true,
+ "placeholder": "http://www.abcd.com",
+ "regex": "(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$",
+ "footerNote": "The Url given under Trigger section when you create Google Cloud Function"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "triggerType",
+ "selectedValue": "Https"
+ }
+ ],
+ "label": "Gcloud Authorization",
+ "value": "gcloudAuthorization",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
+ "secret": true,
+ "footerNote": "Your private Gcloud Authorization Token"
+ },
+ {
+ "type": "textInput",
+ "label": "Api Key Id",
+ "value": "apiKeyId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Api Key Id",
+ "required": false,
+ "placeholder": "e.g: bSjsdGYsOo9sjw23Shj",
+ "secret": true,
+ "footerNote": "Your API Key"
+ }
+ ]
+ },
+ {
+ "title": "Optional Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable Batch Input",
+ "value": "enableBatchInput",
+ "default": false,
+ "footerNote": "While this is checked, Events are sent in Batch."
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": {
+ "name": "enableBatchInput",
+ "selectedValue": true
+ },
+ "label": "Max Batch Size",
+ "value": "maxBatchSize",
+ "regex": "^[1-9]\\d*$",
+ "regexErrorMessage": "Invalid batch size",
+ "placeholder": "e.g: 100",
+ "required": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/google_optimize/db-config.json b/src/configurations/destinations/google_optimize/db-config.json
new file mode 100644
index 000000000..730b32b8f
--- /dev/null
+++ b/src/configurations/destinations/google_optimize/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "GOOGLE_OPTIMIZE",
+ "displayName": "Google Optimize",
+ "config": {
+ "transformAt": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "ga",
+ "trackingId",
+ "containerId",
+ "async",
+ "aflicker",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "secretKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": ["blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "web": [
+ "ga",
+ "trackingId",
+ "containerId",
+ "async",
+ "aflicker",
+ "useNativeSDK",
+ "oneTrustCookieCategories"
+ ]
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_optimize/metadata.json b/src/configurations/destinations/google_optimize/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/google_optimize/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/google_optimize/schema.json b/src/configurations/destinations/google_optimize/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/google_optimize/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/google_optimize/ui_config.json b/src/configurations/destinations/google_optimize/ui-config.json
similarity index 100%
rename from data/destinations/google_optimize/ui_config.json
rename to src/configurations/destinations/google_optimize/ui-config.json
diff --git a/src/configurations/destinations/googleads/db-config.json b/src/configurations/destinations/googleads/db-config.json
new file mode 100644
index 000000000..ee814f0a6
--- /dev/null
+++ b/src/configurations/destinations/googleads/db-config.json
@@ -0,0 +1,43 @@
+{
+ "name": "GOOGLEADS",
+ "displayName": "Google Ads",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [
+ "conversionID",
+ "eventMappingFromConfig",
+ "pageLoadConversions",
+ "clickEventConversions",
+ "defaultPageConversion",
+ "dynamicRemarketing",
+ "sendPageView",
+ "conversionLinker",
+ "disableAdPersonalization",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "conversionID",
+ "eventMappingFromConfig",
+ "pageLoadConversions",
+ "clickEventConversions",
+ "defaultPageConversion",
+ "sendPageView",
+ "conversionLinker",
+ "disableAdPersonalization",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "dynamicRemarketing", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/googleads/metadata.json b/src/configurations/destinations/googleads/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/googleads/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/googleads/schema.json b/src/configurations/destinations/googleads/schema.json
new file mode 100644
index 000000000..f398bb4a5
--- /dev/null
+++ b/src/configurations/destinations/googleads/schema.json
@@ -0,0 +1,135 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["conversionID"],
+ "properties": {
+ "conversionID": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^AW-(.{0,100})$"
+ },
+ "eventMappingFromConfig": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "pageLoadConversions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "conversionLabel": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "name": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "clickEventConversions": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "conversionLabel": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "name": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "defaultPageConversion": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "dynamicRemarketing": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "conversionLinker": {
+ "type": "boolean"
+ },
+ "sendPageView": {
+ "type": "boolean"
+ },
+ "disableAdPersonalization": {
+ "type": "boolean"
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/googleads/ui_config.json b/src/configurations/destinations/googleads/ui-config.json
similarity index 100%
rename from data/destinations/googleads/ui_config.json
rename to src/configurations/destinations/googleads/ui-config.json
diff --git a/src/configurations/destinations/googlepubsub/db-config.json b/src/configurations/destinations/googlepubsub/db-config.json
new file mode 100644
index 000000000..3ba5d60c3
--- /dev/null
+++ b/src/configurations/destinations/googlepubsub/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "GOOGLEPUBSUB",
+ "displayName": "Google Pub/Sub",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["eventToTopicMap", "credentials", "projectId", "eventToAttributesMap"]
+ },
+ "secretKeys": ["credentials"]
+ }
+}
diff --git a/src/configurations/destinations/googlepubsub/metadata.json b/src/configurations/destinations/googlepubsub/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/googlepubsub/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/googlepubsub/schema.json b/src/configurations/destinations/googlepubsub/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/googlepubsub/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/googlepubsub/ui-config.json b/src/configurations/destinations/googlepubsub/ui-config.json
new file mode 100644
index 000000000..e9c82867f
--- /dev/null
+++ b/src/configurations/destinations/googlepubsub/ui-config.json
@@ -0,0 +1,52 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Project ID",
+ "value": "projectId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Project ID",
+ "required": true,
+ "placeholder": ""
+ },
+ {
+ "type": "textareaInput",
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in publishing data into your Google Pub/Sub",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "The credentials JSON is used by the client library to access the Pub/Sub API",
+ "secret": true
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Send RudderStack events to Google pub/sub topics",
+ "footerNote": "Use asterics (*) to send all events to the particular topic.",
+ "labelLeft": "Event",
+ "labelRight": "Topic ID",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: page",
+ "placeholderRight": "e.g: topic_id",
+ "value": "eventToTopicMap"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map message properties to Google pub/sub message Attribute Key",
+ "footerNote": "Use asterics (*) to map for all events.",
+ "labelLeft": "Event",
+ "labelRight": "Field",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: event",
+ "placeholderRight": "e.g: key",
+ "value": "eventToAttributesMap"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/googlesheets/db-config.json b/src/configurations/destinations/googlesheets/db-config.json
new file mode 100644
index 000000000..48b8f80f5
--- /dev/null
+++ b/src/configurations/destinations/googlesheets/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "GOOGLESHEETS",
+ "displayName": "Google Sheets",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["sheetName", "eventKeyMap", "sheetId", "credentials"]
+ },
+ "secretKeys": ["credentials"]
+ }
+}
diff --git a/src/configurations/destinations/googlesheets/metadata.json b/src/configurations/destinations/googlesheets/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/googlesheets/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/googlesheets/schema.json b/src/configurations/destinations/googlesheets/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/googlesheets/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/googlesheets/ui-config.json b/src/configurations/destinations/googlesheets/ui-config.json
new file mode 100644
index 000000000..68801a85e
--- /dev/null
+++ b/src/configurations/destinations/googlesheets/ui-config.json
@@ -0,0 +1,53 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textareaInput",
+ "label": "Credentials",
+ "labelNote": "Google Cloud Service Account credentials JSON for RudderStack to use in publishing data into Google Sheets",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "The credentials JSON is used by the client library to access the Google Sheets API",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Sheet Id",
+ "value": "sheetId",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
+ "footerNote": "Your Google Sheet Id"
+ },
+ {
+ "type": "textInput",
+ "label": "Sheet Name",
+ "value": "sheetName",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. Sheet1",
+ "footerNote": "The spread-sheet to which you want to send data"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Event to Google-Sheets",
+ "footerNote": "Add Event Properties to map to Google-Sheets Column",
+ "labelLeft": "Event Properties",
+ "labelRight": "Column Name",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: addedToCart",
+ "placeholderRight": "e.g: Added To Cart",
+ "value": "eventKeyMap",
+ "disableInputLeft": true,
+ "disableInputRight": false,
+ "disableDelete": true,
+ "required": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/gtm/db-config.json b/src/configurations/destinations/gtm/db-config.json
new file mode 100644
index 000000000..2e3cb5d29
--- /dev/null
+++ b/src/configurations/destinations/gtm/db-config.json
@@ -0,0 +1,30 @@
+{
+ "name": "GTM",
+ "displayName": "Google Tag Manager",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [
+ "containerID",
+ "serverUrl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "containerID",
+ "serverUrl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/gtm/metadata.json b/src/configurations/destinations/gtm/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/gtm/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/gtm/schema.json b/src/configurations/destinations/gtm/schema.json
new file mode 100644
index 000000000..67af25e7b
--- /dev/null
+++ b/src/configurations/destinations/gtm/schema.json
@@ -0,0 +1,70 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["containerID"],
+ "properties": {
+ "containerID": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "serverUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/gtm/ui_config.json b/src/configurations/destinations/gtm/ui-config.json
similarity index 100%
rename from data/destinations/gtm/ui_config.json
rename to src/configurations/destinations/gtm/ui-config.json
diff --git a/src/configurations/destinations/heap/db-config.json b/src/configurations/destinations/heap/db-config.json
new file mode 100644
index 000000000..d939f23a2
--- /dev/null
+++ b/src/configurations/destinations/heap/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "HEAP",
+ "displayName": "Heap.io",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "appId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["appId", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/heap/metadata.json b/src/configurations/destinations/heap/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/heap/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/heap/schema.json b/src/configurations/destinations/heap/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/heap/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/heap/ui_config.json b/src/configurations/destinations/heap/ui-config.json
similarity index 100%
rename from data/destinations/heap/ui_config.json
rename to src/configurations/destinations/heap/ui-config.json
diff --git a/src/configurations/destinations/hotjar/db-config.json b/src/configurations/destinations/hotjar/db-config.json
new file mode 100644
index 000000000..58edef4d9
--- /dev/null
+++ b/src/configurations/destinations/hotjar/db-config.json
@@ -0,0 +1,23 @@
+{
+ "name": "HOTJAR",
+ "displayName": "Hotjar",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "siteID",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": ["siteID", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/hotjar/metadata.json b/src/configurations/destinations/hotjar/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/hotjar/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/hotjar/schema.json b/src/configurations/destinations/hotjar/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/hotjar/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/hotjar/ui_config.json b/src/configurations/destinations/hotjar/ui-config.json
similarity index 100%
rename from data/destinations/hotjar/ui_config.json
rename to src/configurations/destinations/hotjar/ui-config.json
diff --git a/src/configurations/destinations/hs/db-config.json b/src/configurations/destinations/hs/db-config.json
new file mode 100644
index 000000000..9d0b522cd
--- /dev/null
+++ b/src/configurations/destinations/hs/db-config.json
@@ -0,0 +1,51 @@
+{
+ "name": "HS",
+ "displayName": "HubSpot",
+ "config": {
+ "supportsVisualMapper": true,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "hubID",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "authorizationType",
+ "hubID",
+ "apiKey",
+ "accessToken",
+ "apiVersion",
+ "lookupField",
+ "hubspotEvents",
+ "rsEventName",
+ "hubspotEventName",
+ "eventProperties",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "doAssociation"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/hs/metadata.json b/src/configurations/destinations/hs/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/hs/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/hs/schema.json b/src/configurations/destinations/hs/schema.json
new file mode 100644
index 000000000..a6f097121
--- /dev/null
+++ b/src/configurations/destinations/hs/schema.json
@@ -0,0 +1,117 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "properties": {
+ "authorizationType": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApiKey|newPrivateAppApi)$"
+ },
+ "hubID": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "accessToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "apiVersion": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApi|newApi)$"
+ },
+ "lookupField": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "hubspotEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "rsEventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "hubspotEventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/hs/ui_config.json b/src/configurations/destinations/hs/ui-config.json
similarity index 100%
rename from data/destinations/hs/ui_config.json
rename to src/configurations/destinations/hs/ui-config.json
diff --git a/src/configurations/destinations/indicative/db-config.json b/src/configurations/destinations/indicative/db-config.json
new file mode 100644
index 000000000..04bfbcdeb
--- /dev/null
+++ b/src/configurations/destinations/indicative/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "INDICATIVE",
+ "displayName": "Indicative",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["alias", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/indicative/metadata.json b/src/configurations/destinations/indicative/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/indicative/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/indicative/schema.json b/src/configurations/destinations/indicative/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/indicative/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/indicative/ui-config.json b/src/configurations/destinations/indicative/ui-config.json
new file mode 100644
index 000000000..7ee07e6b2
--- /dev/null
+++ b/src/configurations/destinations/indicative/ui-config.json
@@ -0,0 +1,19 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g: 99ba062d-22de-4dd0-a65f-0b064495f74f",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/intercom/db-config.json b/src/configurations/destinations/intercom/db-config.json
new file mode 100644
index 000000000..3956d7a81
--- /dev/null
+++ b/src/configurations/destinations/intercom/db-config.json
@@ -0,0 +1,47 @@
+{
+ "name": "INTERCOM",
+ "displayName": "Intercom",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "appId",
+ "mobileApiKeyAndroid",
+ "mobileApiKeyIOS",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "appId",
+ "collectContext",
+ "sendAnonymousId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK", "mobileApiKeyAndroid"],
+ "ios": ["useNativeSDK", "mobileApiKeyIOS"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/intercom/metadata.json b/src/configurations/destinations/intercom/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/intercom/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/intercom/schema.json b/src/configurations/destinations/intercom/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/intercom/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/intercom/ui_config.json b/src/configurations/destinations/intercom/ui-config.json
similarity index 100%
rename from data/destinations/intercom/ui_config.json
rename to src/configurations/destinations/intercom/ui-config.json
diff --git a/src/configurations/destinations/iterable/db-config.json b/src/configurations/destinations/iterable/db-config.json
new file mode 100644
index 000000000..40f801460
--- /dev/null
+++ b/src/configurations/destinations/iterable/db-config.json
@@ -0,0 +1,82 @@
+{
+ "name": "ITERABLE",
+ "displayName": "Iterable",
+ "config": {
+ "isAudienceSupported": true,
+ "supportsVisualMapper": true,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "initialisationIdentifier",
+ "getInAppEventMapping",
+ "purchaseEventMapping",
+ "sendTrackForInapp",
+ "animationDuration",
+ "displayInterval",
+ "onOpenScreenReaderMessage",
+ "onOpenNodeToTakeFocus",
+ "packageName",
+ "rightOffset",
+ "topOffset",
+ "bottomOffset",
+ "handleLinks",
+ "closeButtonColor",
+ "closeButtonSize",
+ "closeButtonColorTopOffset",
+ "closeButtonColorSideOffset",
+ "iconPath",
+ "isRequiredToDismissMessage",
+ "closeButtonPosition"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "mapToSingleEvent",
+ "trackAllPages",
+ "trackCategorisedPages",
+ "trackNamedPages"
+ ],
+ "web": [
+ "useNativeSDK",
+ "initialisationIdentifier",
+ "getInAppEventMapping",
+ "purchaseEventMapping",
+ "sendTrackForInapp",
+ "animationDuration",
+ "displayInterval",
+ "onOpenScreenReaderMessage",
+ "onOpenNodeToTakeFocus",
+ "packageName",
+ "rightOffset",
+ "topOffset",
+ "bottomOffset",
+ "handleLinks",
+ "closeButtonColor",
+ "closeButtonSize",
+ "closeButtonColorTopOffset",
+ "closeButtonColorSideOffset",
+ "iconPath",
+ "isRequiredToDismissMessage",
+ "closeButtonPosition",
+ "oneTrustCookieCategories"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/iterable/metadata.json b/src/configurations/destinations/iterable/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/iterable/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/iterable/schema.json b/src/configurations/destinations/iterable/schema.json
new file mode 100644
index 000000000..8c5eda682
--- /dev/null
+++ b/src/configurations/destinations/iterable/schema.json
@@ -0,0 +1,236 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "mapToSingleEvent": {
+ "type": "boolean"
+ },
+ "trackAllPages": {
+ "type": "boolean"
+ },
+ "trackCategorisedPages": {
+ "type": "boolean"
+ },
+ "trackNamedPages": {
+ "type": "boolean"
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "getInAppEventMapping": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ },
+ "purchaseEventMapping": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ },
+ "apiSecret": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "initialisationIdentifier": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "animationDuration": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "displayInterval": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "onOpenScreenReaderMessage": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "onOpenNodeToTakeFocus": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "packageName": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "rightOffset": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "topOffset": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "bottomOffset": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "closeButtonColor": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "closeButtonSize": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "closeButtonColorTopOffset": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "closeButtonColorSideOffset": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "iconPath": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "isRequiredToDismissMessage": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "closeButtonPosition": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "sendTrackForInapp": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "handleLinks": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/iterable/ui_config.json b/src/configurations/destinations/iterable/ui-config.json
similarity index 100%
rename from data/destinations/iterable/ui_config.json
rename to src/configurations/destinations/iterable/ui-config.json
diff --git a/src/configurations/destinations/june/db-config.json b/src/configurations/destinations/june/db-config.json
new file mode 100644
index 000000000..a8f21ea49
--- /dev/null
+++ b/src/configurations/destinations/june/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "JUNE",
+ "displayName": "JUNE",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey", "whitelistedEvents", "blacklistedEvents", "eventFilteringOption"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["page", "identify", "track", "group"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "whitelistedEvents", "blacklistedEvents", "eventFilteringOption"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/june/metadata.json b/src/configurations/destinations/june/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/june/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/june/schema.json b/src/configurations/destinations/june/schema.json
new file mode 100644
index 000000000..42bb66960
--- /dev/null
+++ b/src/configurations/destinations/june/schema.json
@@ -0,0 +1,66 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/june/ui_config.json b/src/configurations/destinations/june/ui-config.json
similarity index 100%
rename from data/destinations/june/ui_config.json
rename to src/configurations/destinations/june/ui-config.json
diff --git a/data/destinations/kafka/db_config.json b/src/configurations/destinations/kafka/db-config.json
similarity index 100%
rename from data/destinations/kafka/db_config.json
rename to src/configurations/destinations/kafka/db-config.json
diff --git a/src/configurations/destinations/kafka/metadata.json b/src/configurations/destinations/kafka/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/kafka/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/kafka/schema.json b/src/configurations/destinations/kafka/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/kafka/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/kafka/ui-config.json b/src/configurations/destinations/kafka/ui-config.json
new file mode 100644
index 000000000..c6ccc0159
--- /dev/null
+++ b/src/configurations/destinations/kafka/ui-config.json
@@ -0,0 +1,225 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host Name(s)",
+ "value": "hostName",
+ "regex": "^((,|^)[^\\s]*)*$",
+ "regexErrorMessage": "Invalid Host Name(s)",
+ "required": true,
+ "placeholder": "e.g: localhost",
+ "footerNote": "For multiple host names, provide them in comma separated string format"
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Port",
+ "required": true,
+ "placeholder": "e.g: 9092"
+ },
+ {
+ "type": "textInput",
+ "label": "Topic Name",
+ "value": "topic",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Topic Name",
+ "required": true,
+ "placeholder": "e.g: test-topic"
+ },
+ {
+ "type": "checkbox",
+ "label": "SSL Enabled",
+ "value": "sslEnabled",
+ "default": true
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": {
+ "name": "sslEnabled",
+ "selectedValue": true
+ },
+ "label": "CA certificate",
+ "value": "caCertificate",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "CA Certificate"
+ }
+ ]
+ },
+ {
+ "title": "SASL Authentication",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable SASL with SSL",
+ "value": "useSASL",
+ "default": false
+ },
+ {
+ "type": "singleSelect",
+ "preRequisiteField": {
+ "name": "useSASL",
+ "selectedValue": true
+ },
+ "label": "SASL Type",
+ "value": "saslType",
+ "options": [
+ {
+ "name": "Plain",
+ "value": "plain"
+ },
+ {
+ "name": "SCRAM SHA-512",
+ "value": "sha512"
+ },
+ {
+ "name": "SCRAM SHA-256",
+ "value": "sha256"
+ }
+ ],
+ "defaultOption": {
+ "name": "Plain",
+ "value": "plain"
+ },
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": {
+ "name": "useSASL",
+ "selectedValue": true
+ },
+ "label": "Username",
+ "value": "username",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid User Name",
+ "required": true,
+ "placeholder": "e.g: userjohn"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": {
+ "name": "useSASL",
+ "selectedValue": true
+ },
+ "label": "Password",
+ "value": "password",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Password",
+ "required": true,
+ "placeholder": "e.g: 1jdu234nasfa",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Convert Data to AVRO format",
+ "value": "convertToAvro",
+ "default": false,
+ "footerNote": "If this option is turned on we will convert the data to avro"
+ },
+ {
+ "preRequisiteField": {
+ "name": "convertToAvro",
+ "selectedValue": true
+ },
+ "label": "AVRO Schema Lists",
+ "value": "avroSchemas",
+ "required": true,
+ "type": "dynamicCustomForm",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "schemaId",
+ "required": true,
+ "label": "Schema Id",
+ "placeholder": "e.g: schema-id"
+ },
+ {
+ "type": "textareaInput",
+ "value": "schema",
+ "label": "Schema",
+ "required": true,
+ "placeholder": "schema object"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Topic Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable multiple topic support for event types and event names",
+ "value": "enableMultiTopic",
+ "default": false,
+ "footerNote": "Enable this option to deliver events to multiple topics"
+ },
+ {
+ "preRequisiteField": {
+ "name": "enableMultiTopic",
+ "selectedValue": true
+ },
+ "type": "dynamicSelectForm",
+ "label": "Map event type to topic",
+ "labelLeft": "Event Type",
+ "labelRight": "Topic",
+ "value": "eventTypeToTopicMap",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "reverse": true,
+ "required": true,
+ "placeholderRight": "e.g. Sample-topic",
+ "options": [
+ {
+ "name": "Identify",
+ "value": "identify"
+ },
+ {
+ "name": "Page",
+ "value": "page"
+ },
+ {
+ "name": "Screen",
+ "value": "screen"
+ },
+ {
+ "name": "Group",
+ "value": "group"
+ },
+ {
+ "name": "Alias",
+ "value": "alias"
+ }
+ ]
+ },
+ {
+ "preRequisiteField": {
+ "name": "enableMultiTopic",
+ "selectedValue": true
+ },
+ "type": "dynamicForm",
+ "label": "Map Track events to topic",
+ "required": true,
+ "placeholderLeft": "e.g. Product Searched",
+ "placeholderRight": "Sample-topic",
+ "labelLeft": "Event Name",
+ "labelRight": "Topic",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "value": "eventToTopicMap"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/keen/db-config.json b/src/configurations/destinations/keen/db-config.json
new file mode 100644
index 000000000..4ffa3917b
--- /dev/null
+++ b/src/configurations/destinations/keen/db-config.json
@@ -0,0 +1,50 @@
+{
+ "name": "KEEN",
+ "displayName": "Keen",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "projectID",
+ "writeKey",
+ "ipAddon",
+ "uaAddon",
+ "urlAddon",
+ "referrerAddon",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["page", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "projectID",
+ "writeKey",
+ "ipAddon",
+ "uaAddon",
+ "urlAddon",
+ "referrerAddon",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/keen/metadata.json b/src/configurations/destinations/keen/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/keen/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/keen/schema.json b/src/configurations/destinations/keen/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/keen/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/keen/ui_config.json b/src/configurations/destinations/keen/ui-config.json
similarity index 100%
rename from data/destinations/keen/ui_config.json
rename to src/configurations/destinations/keen/ui-config.json
diff --git a/data/destinations/kinesis/db_config.json b/src/configurations/destinations/kinesis/db-config.json
similarity index 100%
rename from data/destinations/kinesis/db_config.json
rename to src/configurations/destinations/kinesis/db-config.json
diff --git a/src/configurations/destinations/kinesis/metadata.json b/src/configurations/destinations/kinesis/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/kinesis/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/kinesis/schema.json b/src/configurations/destinations/kinesis/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/kinesis/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/kinesis/ui_config.json b/src/configurations/destinations/kinesis/ui-config.json
similarity index 100%
rename from data/destinations/kinesis/ui_config.json
rename to src/configurations/destinations/kinesis/ui-config.json
diff --git a/src/configurations/destinations/kissmetrics/db-config.json b/src/configurations/destinations/kissmetrics/db-config.json
new file mode 100644
index 000000000..f3cc4d722
--- /dev/null
+++ b/src/configurations/destinations/kissmetrics/db-config.json
@@ -0,0 +1,42 @@
+{
+ "name": "KISSMETRICS",
+ "displayName": "Kiss Metrics",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "prefixProperties",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["alias", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "prefixProperties",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/kissmetrics/metadata.json b/src/configurations/destinations/kissmetrics/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/kissmetrics/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/kissmetrics/schema.json b/src/configurations/destinations/kissmetrics/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/kissmetrics/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/kissmetrics/ui_config.json b/src/configurations/destinations/kissmetrics/ui-config.json
similarity index 100%
rename from data/destinations/kissmetrics/ui_config.json
rename to src/configurations/destinations/kissmetrics/ui-config.json
diff --git a/src/configurations/destinations/klaviyo/db-config.json b/src/configurations/destinations/klaviyo/db-config.json
new file mode 100644
index 000000000..2f03b1327
--- /dev/null
+++ b/src/configurations/destinations/klaviyo/db-config.json
@@ -0,0 +1,50 @@
+{
+ "name": "KLAVIYO",
+ "displayName": "Klaviyo",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "publicApiKey",
+ "sendPageAsTrack",
+ "additionalPageInfo",
+ "enforceEmailAsPrimary",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["group", "identify", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "publicApiKey",
+ "privateApiKey",
+ "consent",
+ "smsConsent",
+ "listId",
+ "sendPageAsTrack",
+ "additionalPageInfo",
+ "enforceEmailAsPrimary",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["privateApiKey"]
+ }
+}
diff --git a/src/configurations/destinations/klaviyo/metadata.json b/src/configurations/destinations/klaviyo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/klaviyo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/klaviyo/schema.json b/src/configurations/destinations/klaviyo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/klaviyo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/klaviyo/ui_config.json b/src/configurations/destinations/klaviyo/ui-config.json
similarity index 100%
rename from data/destinations/klaviyo/ui_config.json
rename to src/configurations/destinations/klaviyo/ui-config.json
diff --git a/src/configurations/destinations/kochava/db-config.json b/src/configurations/destinations/kochava/db-config.json
new file mode 100644
index 000000000..a2bec9834
--- /dev/null
+++ b/src/configurations/destinations/kochava/db-config.json
@@ -0,0 +1,38 @@
+{
+ "name": "KOCHAVA",
+ "displayName": "Kochava",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "appTrackingTransparency",
+ "skAdNetwork",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK", "appTrackingTransparency", "skAdNetwork"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/kochava/metadata.json b/src/configurations/destinations/kochava/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/kochava/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/kochava/schema.json b/src/configurations/destinations/kochava/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/kochava/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/kochava/ui-config.json b/src/configurations/destinations/kochava/ui-config.json
new file mode 100644
index 000000000..611ed6e69
--- /dev/null
+++ b/src/configurations/destinations/kochava/ui-config.json
@@ -0,0 +1,100 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Kochava App GUID",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Kochava App GUID",
+ "required": true,
+ "placeholder": "e.g: kotestapplication-xxxxxxxx"
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable AppTrackingTransparency (ATT)",
+ "value": "appTrackingTransparency",
+ "required": false,
+ "default": false,
+ "footerNote": "This setting is applicable for iOS device mode only and it would not work as expected if you disable AppTrackingTransparency (ATT) for your app on Kochava dashboard."
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable skAdNetwork",
+ "value": "skAdNetwork",
+ "required": false,
+ "default": false,
+ "footerNote": "This setting is applicable for iOS device mode only and it requires you to configure skAdNetwork settings for your app on Kochava dashboard to work as expected."
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/kustomer/db-config.json b/src/configurations/destinations/kustomer/db-config.json
new file mode 100644
index 000000000..bb40a5a37
--- /dev/null
+++ b/src/configurations/destinations/kustomer/db-config.json
@@ -0,0 +1,35 @@
+{
+ "name": "KUSTOMER",
+ "displayName": "Kustomer",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "advancedTransform",
+ "setIdentityEmail",
+ "disableEmailAsTrackingProperty",
+ "genericPage",
+ "genericScreen"
+ ]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/kustomer/metadata.json b/src/configurations/destinations/kustomer/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/kustomer/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/kustomer/schema.json b/src/configurations/destinations/kustomer/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/kustomer/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/kustomer/ui-config.json b/src/configurations/destinations/kustomer/ui-config.json
new file mode 100644
index 000000000..00752643d
--- /dev/null
+++ b/src/configurations/destinations/kustomer/ui-config.json
@@ -0,0 +1,57 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. c59e3838caa934b535c1fd342dfds23452dfcccf95c16787304e7a0c0e8051b326451bb2",
+ "secret": true,
+ "footerNote": "API key required to authenticate requests."
+ }
+ ]
+ },
+ {
+ "title": "Tracking Events Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable advanced Kustomer transformations",
+ "value": "advancedTransform",
+ "default": true,
+ "footerNote": "When advanced transformation is enabled, Rudderstack will handle Kustomer Tracking API nuances on top of Vanilla transformation. Please check Docs for more information"
+ },
+ {
+ "type": "checkbox",
+ "label": "Add email as tracking identity",
+ "value": "setIdentityEmail",
+ "default": false,
+ "footerNote": "When this option is enabled, Rudderstack will add email as a tracking identity for Kustomer track call"
+ },
+ {
+ "type": "checkbox",
+ "label": "Disable email as a tracking property",
+ "value": "disableEmailAsTrackingProperty",
+ "default": false,
+ "footerNote": "When this option is enabled, Rudderstack will NOT add email as a tracking property for Kustomer track call"
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable generic title for Page events",
+ "value": "genericPage",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable generic title for Screen events",
+ "value": "genericScreen",
+ "default": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/lambda/db-config.json b/src/configurations/destinations/lambda/db-config.json
new file mode 100644
index 000000000..26e63c03a
--- /dev/null
+++ b/src/configurations/destinations/lambda/db-config.json
@@ -0,0 +1,38 @@
+{
+ "name": "LAMBDA",
+ "displayName": "AWS Lambda",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "amp",
+ "android",
+ "cordova",
+ "cloud",
+ "flutter",
+ "ios",
+ "reactnative",
+ "unity",
+ "warehouse",
+ "web"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track", "alias", "group"],
+ "destConfig": {
+ "defaultConfig": [
+ "region",
+ "iamRoleARN",
+ "accessKeyId",
+ "accessKey",
+ "lambda",
+ "enableBatchInput",
+ "clientContext",
+ "roleBasedAuth",
+ "maxBatchSize"
+ ]
+ },
+ "secretKeys": ["accessKeyId", "accessKey"]
+ }
+}
diff --git a/src/configurations/destinations/lambda/metadata.json b/src/configurations/destinations/lambda/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/lambda/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/lambda/schema.json b/src/configurations/destinations/lambda/schema.json
new file mode 100644
index 000000000..3f772bdd1
--- /dev/null
+++ b/src/configurations/destinations/lambda/schema.json
@@ -0,0 +1,37 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["region", "lambda"],
+ "properties": {
+ "accessKeyId": {
+ "type": "string"
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "region": {
+ "type": "string"
+ },
+ "lambda": {
+ "type": "string"
+ },
+ "enableBatchInput": {
+ "type": "boolean"
+ },
+ "maxBatchSize": {
+ "type": "string",
+ "pattern": "^$|^[1-9]\\d*$"
+ },
+ "clientContext": {
+ "type": "string"
+ }
+ }
+ }
+}
diff --git a/data/destinations/lambda/ui_config.json b/src/configurations/destinations/lambda/ui-config.json
similarity index 100%
rename from data/destinations/lambda/ui_config.json
rename to src/configurations/destinations/lambda/ui-config.json
diff --git a/src/configurations/destinations/launchdarkly/db-config.json b/src/configurations/destinations/launchdarkly/db-config.json
new file mode 100644
index 000000000..d34922dd9
--- /dev/null
+++ b/src/configurations/destinations/launchdarkly/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "LAUNCHDARKLY",
+ "displayName": "LaunchDarkly",
+ "config": {
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "clientSideId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "anonymousUsersSharedKey"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify", "track", "alias"],
+ "destConfig": {
+ "defaultConfig": [
+ "clientSideId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "anonymousUsersSharedKey"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/launchdarkly/metadata.json b/src/configurations/destinations/launchdarkly/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/launchdarkly/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/launchdarkly/schema.json b/src/configurations/destinations/launchdarkly/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/launchdarkly/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/launchdarkly/ui_config.json b/src/configurations/destinations/launchdarkly/ui-config.json
similarity index 100%
rename from data/destinations/launchdarkly/ui_config.json
rename to src/configurations/destinations/launchdarkly/ui-config.json
diff --git a/src/configurations/destinations/leanplum/db-config.json b/src/configurations/destinations/leanplum/db-config.json
new file mode 100644
index 000000000..cbeaa25e5
--- /dev/null
+++ b/src/configurations/destinations/leanplum/db-config.json
@@ -0,0 +1,46 @@
+{
+ "name": "LEANPLUM",
+ "displayName": "Leanplum",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "applicationId",
+ "clientKey",
+ "isDevelop",
+ "useNativeSDKToSend",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "applicationId",
+ "clientKey",
+ "isDevelop",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK", "useNativeSDKToSend"],
+ "ios": ["useNativeSDK", "useNativeSDKToSend"],
+ "flutter": ["useNativeSDK", "useNativeSDKToSend"]
+ },
+ "secretKeys": ["clientKey"]
+ }
+}
diff --git a/src/configurations/destinations/leanplum/metadata.json b/src/configurations/destinations/leanplum/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/leanplum/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/leanplum/schema.json b/src/configurations/destinations/leanplum/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/leanplum/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/leanplum/ui-config.json b/src/configurations/destinations/leanplum/ui-config.json
new file mode 100644
index 000000000..47215d4df
--- /dev/null
+++ b/src/configurations/destinations/leanplum/ui-config.json
@@ -0,0 +1,111 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Application ID",
+ "value": "applicationId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Application ID",
+ "required": true,
+ "placeholder": "e.g: ABCDEFG"
+ },
+ {
+ "type": "textInput",
+ "label": "Client Key",
+ "value": "clientKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Client Key",
+ "required": true,
+ "placeholder": "e.g: ABCDEFG",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Initialize Native SDK to send automated events",
+ "value": "useNativeSDK",
+ "default": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send user generated events",
+ "value": "useNativeSDKToSend",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Development Mode",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use in Development Environment",
+ "value": "isDevelop",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/linkedin_insight_tag/db-config.json b/src/configurations/destinations/linkedin_insight_tag/db-config.json
new file mode 100644
index 000000000..c06fbe48d
--- /dev/null
+++ b/src/configurations/destinations/linkedin_insight_tag/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "LINKEDIN_INSIGHT_TAG",
+ "displayName": "Linkedin Insight Tag",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "partnerId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "eventToConversionIdMap"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "partnerId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "eventToConversionIdMap"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/linkedin_insight_tag/metadata.json b/src/configurations/destinations/linkedin_insight_tag/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/linkedin_insight_tag/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/linkedin_insight_tag/schema.json b/src/configurations/destinations/linkedin_insight_tag/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/linkedin_insight_tag/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/linkedin_insight_tag/ui_config.json b/src/configurations/destinations/linkedin_insight_tag/ui-config.json
similarity index 100%
rename from data/destinations/linkedin_insight_tag/ui_config.json
rename to src/configurations/destinations/linkedin_insight_tag/ui-config.json
diff --git a/src/configurations/destinations/livechat/db-config.json b/src/configurations/destinations/livechat/db-config.json
new file mode 100644
index 000000000..604a5e48c
--- /dev/null
+++ b/src/configurations/destinations/livechat/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "LIVECHAT",
+ "displayName": "livechat",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "licenseId",
+ "recordLiveChatEvents",
+ "updateEventNames",
+ "eventsToStandard",
+ "eventsList",
+ "eventFilteringOption",
+ "blacklistedEvents",
+ "whitelistedEvents"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "licenseId",
+ "recordLiveChatEvents",
+ "updateEventNames",
+ "eventsToStandard",
+ "eventFilteringOption",
+ "eventsList",
+ "blacklistedEvents",
+ "whitelistedEvents"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["licenseId"]
+ }
+}
diff --git a/src/configurations/destinations/livechat/metadata.json b/src/configurations/destinations/livechat/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/livechat/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/livechat/schema.json b/src/configurations/destinations/livechat/schema.json
new file mode 100644
index 000000000..ad2fbbe7e
--- /dev/null
+++ b/src/configurations/destinations/livechat/schema.json
@@ -0,0 +1,88 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["licenseId"],
+ "type": "object",
+ "properties": {
+ "licenseId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "recordLiveChatEvents": {
+ "type": "boolean"
+ },
+ "eventsList": {
+ "type": "string",
+ "pattern": "^(onReady|onAvailabilityChanged|onVisibilityChanged|onCustomerStatusChanged|onNewEvent|onFormSubmitted|onRatingSubmitted|onGreetingDisplayed|onGreetingHidden|onRichMessageButtonClicked)$"
+ },
+ "updateEventNames": {
+ "type": "boolean"
+ },
+ "eventsToStandard": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/livechat/ui_config.json b/src/configurations/destinations/livechat/ui-config.json
similarity index 100%
rename from data/destinations/livechat/ui_config.json
rename to src/configurations/destinations/livechat/ui-config.json
diff --git a/src/configurations/destinations/lotame/db-config.json b/src/configurations/destinations/lotame/db-config.json
new file mode 100644
index 000000000..eda2daebd
--- /dev/null
+++ b/src/configurations/destinations/lotame/db-config.json
@@ -0,0 +1,37 @@
+{
+ "name": "LOTAME",
+ "displayName": "Lotame",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "bcpUrlSettingsPixel",
+ "bcpUrlSettingsIframe",
+ "dspUrlSettingsPixel",
+ "dspUrlSettingsIframe",
+ "mappings",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web", "amp"],
+ "destConfig": {
+ "defaultConfig": [
+ "bcpUrlSettingsPixel",
+ "bcpUrlSettingsIframe",
+ "dspUrlSettingsPixel",
+ "dspUrlSettingsIframe",
+ "mappings",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"],
+ "amp": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/lotame/metadata.json b/src/configurations/destinations/lotame/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/lotame/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/lotame/schema.json b/src/configurations/destinations/lotame/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/lotame/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/lotame/ui_config.json b/src/configurations/destinations/lotame/ui-config.json
similarity index 100%
rename from data/destinations/lotame/ui_config.json
rename to src/configurations/destinations/lotame/ui-config.json
diff --git a/src/configurations/destinations/lotame_mobile/db-config.json b/src/configurations/destinations/lotame_mobile/db-config.json
new file mode 100644
index 000000000..3a90c17e7
--- /dev/null
+++ b/src/configurations/destinations/lotame_mobile/db-config.json
@@ -0,0 +1,32 @@
+{
+ "name": "LOTAME_MOBILE",
+ "displayName": "Lotame Mobile",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "bcpUrlSettingsPixel",
+ "dspUrlSettingsPixel",
+ "mappings",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["android", "ios"],
+ "destConfig": {
+ "defaultConfig": [
+ "bcpUrlSettingsPixel",
+ "dspUrlSettingsPixel",
+ "mappings",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/lotame_mobile/metadata.json b/src/configurations/destinations/lotame_mobile/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/lotame_mobile/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/lotame_mobile/schema.json b/src/configurations/destinations/lotame_mobile/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/lotame_mobile/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/lotame_mobile/ui-config.json b/src/configurations/destinations/lotame_mobile/ui-config.json
new file mode 100644
index 000000000..3e99e6627
--- /dev/null
+++ b/src/configurations/destinations/lotame_mobile/ui-config.json
@@ -0,0 +1,125 @@
+{
+ "uiConfig": [
+ {
+ "title": "BCP Url Settings",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "bcpUrlSettingsPixel",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "BCP Url Template (Pixel)",
+ "value": "bcpUrlTemplate",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid BCP Url Template (Pixel)",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "DSP Url Settings",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "dspUrlSettingsPixel",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "DSP Url Template (Pixel)",
+ "value": "dspUrlTemplate",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid DSP Url Template (Pixel)",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Map all the fields: ",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "labelLeft": "Placeholder",
+ "labelRight": "Value",
+ "keyLeft": "key",
+ "keyRight": "value",
+ "placeholderLeft": "e.g: Client ID",
+ "placeholderRight": "e.g: 123456",
+ "value": "mappings"
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "defaultCheckbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/lytics/db-config.json b/src/configurations/destinations/lytics/db-config.json
new file mode 100644
index 000000000..084052eb2
--- /dev/null
+++ b/src/configurations/destinations/lytics/db-config.json
@@ -0,0 +1,46 @@
+{
+ "name": "LYTICS",
+ "displayName": "Lytics",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accountId",
+ "apiKey",
+ "stream",
+ "blockload",
+ "loadid",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "stream",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "accountId", "blockload", "loadid", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/lytics/metadata.json b/src/configurations/destinations/lytics/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/lytics/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/lytics/schema.json b/src/configurations/destinations/lytics/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/lytics/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/lytics/ui_config.json b/src/configurations/destinations/lytics/ui-config.json
similarity index 100%
rename from data/destinations/lytics/ui_config.json
rename to src/configurations/destinations/lytics/ui-config.json
diff --git a/src/configurations/destinations/mailchimp/db-config.json b/src/configurations/destinations/mailchimp/db-config.json
new file mode 100644
index 000000000..b888faf14
--- /dev/null
+++ b/src/configurations/destinations/mailchimp/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "MAILCHIMP",
+ "displayName": "Mailchimp",
+ "config": {
+ "supportsVisualMapper": true,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "audienceId", "datacenterId", "enableMergeFields"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/mailchimp/metadata.json b/src/configurations/destinations/mailchimp/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mailchimp/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mailchimp/schema.json b/src/configurations/destinations/mailchimp/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/mailchimp/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/mailchimp/ui-config.json b/src/configurations/destinations/mailchimp/ui-config.json
new file mode 100644
index 000000000..33f927fcb
--- /dev/null
+++ b/src/configurations/destinations/mailchimp/ui-config.json
@@ -0,0 +1,48 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Mailchimp Api Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Mailchimp Api Key",
+ "required": true,
+ "placeholder": "e.g: 94f71917dald93kf897449b0c90caa4c-us20"
+ },
+ {
+ "type": "textInput",
+ "label": "Mailchimp Audience Id",
+ "value": "audienceId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Mailchimp Audience Id",
+ "required": true,
+ "placeholder": "e.g: dn42a32d30"
+ },
+ {
+ "type": "textInput",
+ "label": "Mailchimp DataCenter Id",
+ "value": "datacenterId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Mailchimp DataCenter Id",
+ "required": true,
+ "placeholder": "e.g: us20"
+ }
+ ]
+ },
+ {
+ "title": "2. Event Map Setting",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable merge fields",
+ "value": "enableMergeFields",
+ "default": false,
+ "footerNote": "It is recomended to set this to on as it will help to add merge_fields while updating a subscriber."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/mailjet/db-config.json b/src/configurations/destinations/mailjet/db-config.json
new file mode 100644
index 000000000..b71bf53a2
--- /dev/null
+++ b/src/configurations/destinations/mailjet/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "MAILJET",
+ "displayName": "Mailjet",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey", "apiSecret", "listId", "contactPropertiesMapping"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "apiSecret", "listId", "contactPropertiesMapping"]
+ },
+ "secretKeys": ["apiSecret"]
+ }
+}
diff --git a/src/configurations/destinations/mailjet/metadata.json b/src/configurations/destinations/mailjet/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mailjet/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/mailjet/schema.json b/src/configurations/destinations/mailjet/schema.json
similarity index 100%
rename from data/destinations/mailjet/schema.json
rename to src/configurations/destinations/mailjet/schema.json
diff --git a/data/destinations/mailjet/ui_config.json b/src/configurations/destinations/mailjet/ui-config.json
similarity index 100%
rename from data/destinations/mailjet/ui_config.json
rename to src/configurations/destinations/mailjet/ui-config.json
diff --git a/src/configurations/destinations/mailmodo/db-config.json b/src/configurations/destinations/mailmodo/db-config.json
new file mode 100644
index 000000000..c2d08f8e8
--- /dev/null
+++ b/src/configurations/destinations/mailmodo/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "MAILMODO",
+ "displayName": "Mailmodo",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey", "listName"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "listName"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/mailmodo/metadata.json b/src/configurations/destinations/mailmodo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mailmodo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mailmodo/schema.json b/src/configurations/destinations/mailmodo/schema.json
new file mode 100644
index 000000000..46c032476
--- /dev/null
+++ b/src/configurations/destinations/mailmodo/schema.json
@@ -0,0 +1,17 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "listName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mailmodo/ui-config.json b/src/configurations/destinations/mailmodo/ui-config.json
new file mode 100644
index 000000000..d4a421cc4
--- /dev/null
+++ b/src/configurations/destinations/mailmodo/ui-config.json
@@ -0,0 +1,30 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid MailModo API Key",
+ "required": true,
+ "placeholder": "e.g. L9DFHY-PTF4B4Q-PH3NY7E-LPYBX0Q",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "List Name",
+ "value": "listName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid List Name",
+ "required": false,
+ "placeholder": "e.g. rudderstack",
+ "secret": false,
+ "footerNote": "Name of the list where contacts should be added. If not provided, \u201cRudderstack\u201d is taken as the default name. Only applicable for the identify call"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/marketo/db-config.json b/src/configurations/destinations/marketo/db-config.json
new file mode 100644
index 000000000..c820435a7
--- /dev/null
+++ b/src/configurations/destinations/marketo/db-config.json
@@ -0,0 +1,106 @@
+{
+ "name": "MARKETO",
+ "displayName": "Marketo",
+ "config": {
+ "supportsVisualMapper": true,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "clientId",
+ "clientSecret",
+ "trackAnonymousEvents",
+ "createIfNotExist",
+ "customActivityEventMap",
+ "customActivityPropertyMap",
+ "customActivityPrimaryKeyMap",
+ "leadTraitMapping"
+ ]
+ },
+ "secretKeys": ["clientSecret"]
+ },
+ "responseRules": {
+ "responseType": "JSON",
+ "rules": {
+ "retryable": [
+ {
+ "success": "false",
+ "errors.0.code": 600
+ },
+ {
+ "success": "false",
+ "errors.0.code": 601
+ },
+ {
+ "success": "false",
+ "errors.0.code": 602
+ },
+ {
+ "success": "false",
+ "errors.0.code": 604
+ },
+ {
+ "success": "false",
+ "errors.0.code": 611
+ }
+ ],
+ "abortable": [
+ {
+ "success": "false",
+ "errors.0.code": 603
+ },
+ {
+ "success": "false",
+ "errors.0.code": 605
+ },
+ {
+ "success": "false",
+ "errors.0.code": 609
+ },
+ {
+ "success": "false",
+ "errors.0.code": 610
+ }
+ ],
+ "throttled": [
+ {
+ "success": "false",
+ "errors.0.code": 502
+ },
+ {
+ "success": "false",
+ "errors.0.code": 606
+ },
+ {
+ "success": "false",
+ "errors.0.code": 607
+ },
+ {
+ "success": "false",
+ "errors.0.code": 608
+ },
+ {
+ "success": "false",
+ "errors.0.code": 615
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/destinations/marketo/metadata.json b/src/configurations/destinations/marketo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/marketo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/marketo/schema.json b/src/configurations/destinations/marketo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/marketo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/marketo/ui-config.json b/src/configurations/destinations/marketo/ui-config.json
new file mode 100644
index 000000000..f6e51ebb6
--- /dev/null
+++ b/src/configurations/destinations/marketo/ui-config.json
@@ -0,0 +1,112 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Munchkin Account Id",
+ "value": "accountId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Munchkin Account Id",
+ "required": true,
+ "footerNote": "Your Marketo Accound ID from Admin settings section",
+ "placeholder": "e.g: 585-AXP-446"
+ },
+ {
+ "type": "textInput",
+ "label": "Client ID",
+ "value": "clientId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Client ID",
+ "required": true,
+ "placeholder": "e.g: 53b1934e-51dd-4599-b24b-92612c71515f",
+ "footerNote": "Your REST API Client ID"
+ },
+ {
+ "type": "textInput",
+ "label": "Client Secret",
+ "value": "clientSecret",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Client Secret",
+ "required": true,
+ "placeholder": "e.g: oxzXtNhcuw9YGsdhplKUeEMi8765dsfw",
+ "secret": true,
+ "footerNote": "Your REST API Client Secret"
+ }
+ ]
+ },
+ {
+ "title": "Custom Activity Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Track anonymous events",
+ "value": "trackAnonymousEvents",
+ "default": false,
+ "footerNote": "If turned on, you need to send userId with every track call"
+ },
+ {
+ "type": "checkbox",
+ "label": "Create Lead if it does not exist",
+ "value": "createIfNotExist",
+ "default": true,
+ "footerNote": "If turned on, we will create a new lead if the user is not present"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map events to Marketo Activity ID",
+ "labelLeft": "Event Name",
+ "labelRight": "Activity ID",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Clicked",
+ "placeholderRight": "e.g: 100001",
+ "value": "customActivityEventMap",
+ "footerNote": "You can find the Activity ID in your Admin section under Custom Activity on your Marketo dashboard"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map your event properties to Marketo custom activity's field",
+ "labelLeft": "Event Property",
+ "labelRight": "Marketo Custom Activity field",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: name",
+ "placeholderRight": "e.g: productName",
+ "value": "customActivityPropertyMap",
+ "footerNote": "The value passed in Event Property name here will be sent in the corresponding mapped field."
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map event name to Marketo primary key",
+ "labelLeft": "Event Name",
+ "labelRight": "Marketo Primary Key",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Clicked",
+ "placeholderRight": "e.g: name",
+ "value": "customActivityPrimaryKeyMap",
+ "footerNote": "Map your event name to the desired primary key field."
+ }
+ ]
+ },
+ {
+ "title": "Lead Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map your traits to Marketo custom fields",
+ "labelLeft": "Traits name",
+ "labelRight": "Custom field api name",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: leadScore",
+ "placeholderRight": "e.g: customLeadScore",
+ "value": "leadTraitMapping",
+ "footerNote": "Map your user traits to your desired custom field's api name."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/marketo_bulk_upload/db-config.json b/src/configurations/destinations/marketo_bulk_upload/db-config.json
new file mode 100644
index 000000000..a2558a8ba
--- /dev/null
+++ b/src/configurations/destinations/marketo_bulk_upload/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "MARKETO_BULK_UPLOAD",
+ "displayName": "Marketo Lead Import",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "clientId",
+ "clientSecret",
+ "munchkinId",
+ "deDuplicationField",
+ "columnFieldsMapping",
+ "uploadInterval"
+ ]
+ },
+ "secretKeys": ["clientId", "clientSecret"]
+ }
+}
diff --git a/src/configurations/destinations/marketo_bulk_upload/metadata.json b/src/configurations/destinations/marketo_bulk_upload/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/marketo_bulk_upload/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/marketo_bulk_upload/schema.json b/src/configurations/destinations/marketo_bulk_upload/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/marketo_bulk_upload/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/marketo_bulk_upload/ui-config.json b/src/configurations/destinations/marketo_bulk_upload/ui-config.json
new file mode 100644
index 000000000..d1bdf95aa
--- /dev/null
+++ b/src/configurations/destinations/marketo_bulk_upload/ui-config.json
@@ -0,0 +1,89 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Munchkin Account Id",
+ "value": "munchkinId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Munchkin Account Id",
+ "required": true,
+ "footerNote": "Your Marketo Accound ID from Admin settings section",
+ "placeholder": "e.g: 585-AXP-446"
+ },
+ {
+ "type": "textInput",
+ "label": "Client ID",
+ "value": "clientId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Client ID",
+ "required": true,
+ "placeholder": "e.g: 53b1934e-51dd-4599-b24b-92612c71515f",
+ "footerNote": "Your REST API Client ID"
+ },
+ {
+ "type": "textInput",
+ "label": "Client Secret",
+ "value": "clientSecret",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Client Secret",
+ "required": true,
+ "placeholder": "e.g: oxzXtNhcuw9YGsdhplKUeEMi8765dsfw",
+ "secret": true,
+ "footerNote": "Your REST API Client Secret"
+ },
+ {
+ "type": "textInput",
+ "label": "De-duplication Field",
+ "value": "deDuplicationField",
+ "required": false,
+ "placeholder": "e.g: email",
+ "secret": false,
+ "footerNote": "RudderStack will use this Marketo field name for de-duplication & this field should be present in column field mapping."
+ },
+ {
+ "type": "singleSelect",
+ "label": "Upload Interval",
+ "value": "uploadInterval",
+ "options": [
+ {
+ "name": "Every 10 minutes",
+ "value": "10"
+ },
+ {
+ "name": "Every 20 minutes",
+ "value": "20"
+ },
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 10 minutes",
+ "value": "10"
+ }
+ }
+ ]
+ },
+ {
+ "title": "Column Fields Mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map your traits to Marketo column fields",
+ "labelRight": "Marketo field name",
+ "labelLeft": "RudderStack trait name",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: leadScore",
+ "placeholderRight": "e.g: customLeadScore",
+ "value": "columnFieldsMapping",
+ "footerNote": "Map your user's traits to the allowed standard fields in Marketo"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/marketo_static_list/db-config.json b/src/configurations/destinations/marketo_static_list/db-config.json
new file mode 100644
index 000000000..afb14c71d
--- /dev/null
+++ b/src/configurations/destinations/marketo_static_list/db-config.json
@@ -0,0 +1,17 @@
+{
+ "name": "MARKETO_STATIC_LIST",
+ "displayName": "Marketo Static List",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["clientId", "clientSecret", "accountId", "staticListId"],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["cloud", "warehouse"],
+ "supportedMessageTypes": ["audiencelist"],
+ "destConfig": {
+ "defaultConfig": ["clientId", "clientSecret", "accountId", "staticListId"]
+ },
+ "secretKeys": ["clientId", "clientSecret", "accountId"]
+ }
+}
diff --git a/src/configurations/destinations/marketo_static_list/metadata.json b/src/configurations/destinations/marketo_static_list/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/marketo_static_list/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/marketo_static_list/schema.json b/src/configurations/destinations/marketo_static_list/schema.json
new file mode 100644
index 000000000..379702a4e
--- /dev/null
+++ b/src/configurations/destinations/marketo_static_list/schema.json
@@ -0,0 +1,25 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["clientId", "clientSecret", "accountId", "staticListId"],
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "clientSecret": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "accountId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "staticListId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ }
+ }
+ }
+}
diff --git a/data/destinations/marketo_static_list/ui_config.json b/src/configurations/destinations/marketo_static_list/ui-config.json
similarity index 100%
rename from data/destinations/marketo_static_list/ui_config.json
rename to src/configurations/destinations/marketo_static_list/ui-config.json
diff --git a/src/configurations/destinations/matomo/db-config.json b/src/configurations/destinations/matomo/db-config.json
new file mode 100644
index 000000000..ceb12ce0b
--- /dev/null
+++ b/src/configurations/destinations/matomo/db-config.json
@@ -0,0 +1,56 @@
+{
+ "name": "MATOMO",
+ "displayName": "Matomo",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "serverUrl",
+ "siteId",
+ "eventsMapToGoalId",
+ "eventsToStandard",
+ "trackAllContentImpressions",
+ "trackVisibleContentImpressions",
+ "checkOnScroll",
+ "timeIntervalInMs",
+ "logAllContentBlocksOnPage",
+ "enableHeartBeatTimer",
+ "activeTimeInseconds",
+ "enableLinkTracking",
+ "disablePerformanceTracking",
+ "enableCrossDomainLinking",
+ "setCrossDomainLinkingTimeout",
+ "timeout",
+ "getCrossDomainLinkingUrlParameter",
+ "disableBrowserFeatureDetection"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify", "track", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "serverUrl",
+ "siteId",
+ "eventsMapToGoalId",
+ "eventsToStandard",
+ "trackAllContentImpressions",
+ "trackVisibleContentImpressions",
+ "checkOnScroll",
+ "timeIntervalInMs",
+ "logAllContentBlocksOnPage",
+ "enableHeartBeatTimer",
+ "activeTimeInseconds",
+ "enableLinkTracking",
+ "disablePerformanceTracking",
+ "enableCrossDomainLinking",
+ "setCrossDomainLinkingTimeout",
+ "timeout",
+ "getCrossDomainLinkingUrlParameter",
+ "disableBrowserFeatureDetection"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["serverUrl", "siteId"]
+ }
+}
diff --git a/src/configurations/destinations/matomo/metadata.json b/src/configurations/destinations/matomo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/matomo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/matomo/schema.json b/src/configurations/destinations/matomo/schema.json
new file mode 100644
index 000000000..cf4623805
--- /dev/null
+++ b/src/configurations/destinations/matomo/schema.json
@@ -0,0 +1,111 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["siteId", "serverUrl"],
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "siteId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,10})$"
+ },
+ "eventsMapToGoalId": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventsToStandard": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "trackAllContentImpressions": {
+ "type": "boolean"
+ },
+ "trackVisibleContentImpressions": {
+ "type": "boolean"
+ },
+ "checkOnScroll": {
+ "type": "boolean"
+ },
+ "timeIntervalInMs": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ },
+ "logAllContentBlocksOnPage": {
+ "type": "boolean"
+ },
+ "enableHeartBeatTimer": {
+ "type": "boolean"
+ },
+ "activeTimeInseconds": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ },
+ "enableLinkTracking": {
+ "type": "boolean"
+ },
+ "disablePerformanceTracking": {
+ "type": "boolean"
+ },
+ "enableCrossDomainLinking": {
+ "type": "boolean"
+ },
+ "setCrossDomainLinkingTimeout": {
+ "type": "boolean"
+ },
+ "timeout": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ },
+ "getCrossDomainLinkingUrlParameter": {
+ "type": "boolean"
+ },
+ "disableBrowserFeatureDetection": {
+ "type": "boolean"
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/matomo/ui_config.json b/src/configurations/destinations/matomo/ui-config.json
similarity index 100%
rename from data/destinations/matomo/ui_config.json
rename to src/configurations/destinations/matomo/ui-config.json
diff --git a/src/configurations/destinations/mautic/db-config.json b/src/configurations/destinations/mautic/db-config.json
new file mode 100644
index 000000000..24d8cbab9
--- /dev/null
+++ b/src/configurations/destinations/mautic/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "MAUTIC",
+ "displayName": "Mautic",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["userName", "password", "subDomainName", "lookUpField"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "group"],
+ "destConfig": {
+ "defaultConfig": ["userName", "password", "subDomainName", "lookUpField"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/mautic/metadata.json b/src/configurations/destinations/mautic/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mautic/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mautic/schema.json b/src/configurations/destinations/mautic/schema.json
new file mode 100644
index 000000000..4f570d0fd
--- /dev/null
+++ b/src/configurations/destinations/mautic/schema.json
@@ -0,0 +1,25 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["userName", "password", "subDomainName", "lookUpField"],
+ "properties": {
+ "userName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "subDomainName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "lookUpField": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mautic/ui-config.json b/src/configurations/destinations/mautic/ui-config.json
new file mode 100644
index 000000000..a6b15811b
--- /dev/null
+++ b/src/configurations/destinations/mautic/ui-config.json
@@ -0,0 +1,43 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Username",
+ "value": "userName",
+ "required": true,
+ "placeholder": "e.g: abc@test.com",
+ "footerNote": "Enter the Mautic username used for authentication."
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "required": true,
+ "secret": true,
+ "placeholder": "123fgh678",
+ "footerNote": "Enter the password associated with the above username."
+ },
+ {
+ "type": "textInput",
+ "label": "Sub-Domain Name",
+ "value": "subDomainName",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: testdomain",
+ "footerNote": "Enter the subdomain name of your Mautic instance."
+ },
+ {
+ "type": "textInput",
+ "label": "Mautic property name to be used as lookup field",
+ "value": "lookUpField",
+ "required": true,
+ "placeholder": "e.g: email",
+ "footerNote": "Enter a unique Mautic user property to be used for contact lookup. The provided lookup field key will be retrieved from the traits."
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/microsoft_clarity/db_config.json b/src/configurations/destinations/microsoft_clarity/db-config.json
similarity index 100%
rename from data/destinations/microsoft_clarity/db_config.json
rename to src/configurations/destinations/microsoft_clarity/db-config.json
diff --git a/src/configurations/destinations/microsoft_clarity/metadata.json b/src/configurations/destinations/microsoft_clarity/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/microsoft_clarity/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/microsoft_clarity/schema.json b/src/configurations/destinations/microsoft_clarity/schema.json
new file mode 100644
index 000000000..765f6d83a
--- /dev/null
+++ b/src/configurations/destinations/microsoft_clarity/schema.json
@@ -0,0 +1,65 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["projectId"],
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "cookieConsent": {
+ "type": "boolean"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/microsoft_clarity/ui_config.json b/src/configurations/destinations/microsoft_clarity/ui-config.json
similarity index 100%
rename from data/destinations/microsoft_clarity/ui_config.json
rename to src/configurations/destinations/microsoft_clarity/ui-config.json
diff --git a/src/configurations/destinations/minio/db-config.json b/src/configurations/destinations/minio/db-config.json
new file mode 100644
index 000000000..cb47856c6
--- /dev/null
+++ b/src/configurations/destinations/minio/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "MINIO",
+ "displayName": "MinIO",
+ "config": {
+ "transformAt": "none",
+ "transformAtV1": "none",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "endPoint",
+ "accessKeyID",
+ "secretAccessKey",
+ "bucketName",
+ "prefix",
+ "useSSL"
+ ]
+ },
+ "secretKeys": ["accessKeyID", "secretAccessKey"]
+ }
+}
diff --git a/src/configurations/destinations/minio/metadata.json b/src/configurations/destinations/minio/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/minio/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/minio/schema.json b/src/configurations/destinations/minio/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/minio/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/minio/ui-config.json b/src/configurations/destinations/minio/ui-config.json
new file mode 100644
index 000000000..e3e970edc
--- /dev/null
+++ b/src/configurations/destinations/minio/ui-config.json
@@ -0,0 +1,62 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "MinIO Endpoint",
+ "value": "endPoint",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Endpoint",
+ "required": true,
+ "placeholder": "e.g: play.min.io:9000"
+ },
+ {
+ "type": "textInput",
+ "label": "MinIO Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Access Key ID",
+ "required": true,
+ "placeholder": "e.g: Q3AM3UQ867SPQQA43P2F",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "MinIO Secret Access Key",
+ "value": "secretAccessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "MINIO Bucket Name",
+ "value": "bucketName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MINIO Bucket Name",
+ "required": true,
+ "placeholder": "e.g: minio-event-logs"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "checkbox",
+ "label": "Use SSL for connection",
+ "value": "useSSL",
+ "default": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/moengage/db-config.json b/src/configurations/destinations/moengage/db-config.json
new file mode 100644
index 000000000..6e34db70d
--- /dev/null
+++ b/src/configurations/destinations/moengage/db-config.json
@@ -0,0 +1,47 @@
+{
+ "name": "MOENGAGE",
+ "displayName": "MoEngage",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiId",
+ "region",
+ "debug",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiId",
+ "apiKey",
+ "region",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "debug", "oneTrustCookieCategories"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "reactnative": ["useNativeSDK"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/moengage/metadata.json b/src/configurations/destinations/moengage/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/moengage/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/moengage/schema.json b/src/configurations/destinations/moengage/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/moengage/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/moengage/ui_config.json b/src/configurations/destinations/moengage/ui-config.json
similarity index 100%
rename from data/destinations/moengage/ui_config.json
rename to src/configurations/destinations/moengage/ui-config.json
diff --git a/src/configurations/destinations/monday/db-config.json b/src/configurations/destinations/monday/db-config.json
new file mode 100644
index 000000000..dc54911ac
--- /dev/null
+++ b/src/configurations/destinations/monday/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "MONDAY",
+ "displayName": "Monday",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiToken",
+ "boardId",
+ "groupTitle",
+ "columnToPropertyMapping",
+ "whitelistedEvents"
+ ]
+ },
+ "secretKeys": ["apiToken"]
+ }
+}
diff --git a/src/configurations/destinations/monday/metadata.json b/src/configurations/destinations/monday/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/monday/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/monday/schema.json b/src/configurations/destinations/monday/schema.json
new file mode 100644
index 000000000..21af61db8
--- /dev/null
+++ b/src/configurations/destinations/monday/schema.json
@@ -0,0 +1,49 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiToken", "boardId"],
+ "properties": {
+ "apiToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$"
+ },
+ "boardId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "groupTitle": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "columnToPropertyMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/monday/ui-config.json b/src/configurations/destinations/monday/ui-config.json
new file mode 100644
index 000000000..ae2d1997f
--- /dev/null
+++ b/src/configurations/destinations/monday/ui-config.json
@@ -0,0 +1,82 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiToken",
+ "regex": "^(.{1,300})$",
+ "regexErrorMessage": "Invalid API Token",
+ "required": true,
+ "placeholder": "e.g. eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
+ "secret": true,
+ "footerNote": "Your API Token"
+ }
+ ]
+ },
+ {
+ "title": "Board details",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Board ID",
+ "value": "boardId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Board Id",
+ "required": true,
+ "placeholder": "e.g. 3121222335",
+ "secret": false,
+ "footerNote": "Your Board Id"
+ },
+ {
+ "type": "textInput",
+ "label": "Group Title",
+ "value": "groupTitle",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Group Title",
+ "required": false,
+ "placeholder": "e.g. Active Deals",
+ "secret": false,
+ "footerNote": "Group name of the board in which item will be created"
+ }
+ ]
+ },
+ {
+ "title": "Column to property mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Mapping the column name with property name",
+ "labelLeft": "Monday Column Name",
+ "labelRight": "RudderStack Property Name",
+ "value": "columnToPropertyMapping",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Deal Length",
+ "placeholderRight": "e.g: days"
+ }
+ ]
+ },
+ {
+ "title": "Client side events filtering",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "footerNote": "Events not included in the Allowlist will be discarded.",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/monetate/db-config.json b/src/configurations/destinations/monetate/db-config.json
new file mode 100644
index 000000000..a1fd15264
--- /dev/null
+++ b/src/configurations/destinations/monetate/db-config.json
@@ -0,0 +1,26 @@
+{
+ "name": "MONETATE",
+ "displayName": "Monetate",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "unity",
+ "amp",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["monetateChannel", "retailerShortName"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/monetate/metadata.json b/src/configurations/destinations/monetate/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/monetate/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/monetate/schema.json b/src/configurations/destinations/monetate/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/monetate/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/monetate/ui-config.json b/src/configurations/destinations/monetate/ui-config.json
new file mode 100644
index 000000000..d15149e2c
--- /dev/null
+++ b/src/configurations/destinations/monetate/ui-config.json
@@ -0,0 +1,25 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Monetate Channel",
+ "value": "monetateChannel",
+ "required": true,
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Monetate Channel"
+ },
+ {
+ "type": "textInput",
+ "label": "Retailer Short Name",
+ "value": "retailerShortName",
+ "required": true,
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Retailer Short Name"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/mouseflow/db-config.json b/src/configurations/destinations/mouseflow/db-config.json
new file mode 100644
index 000000000..55cb26f71
--- /dev/null
+++ b/src/configurations/destinations/mouseflow/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "MOUSEFLOW",
+ "displayName": "Mouseflow",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "websiteId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify", "track", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "websiteId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["websiteId"]
+ }
+}
diff --git a/src/configurations/destinations/mouseflow/metadata.json b/src/configurations/destinations/mouseflow/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mouseflow/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mouseflow/schema.json b/src/configurations/destinations/mouseflow/schema.json
new file mode 100644
index 000000000..e1a4b4e24
--- /dev/null
+++ b/src/configurations/destinations/mouseflow/schema.json
@@ -0,0 +1,62 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["websiteId"],
+ "properties": {
+ "websiteId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/mouseflow/ui_config.json b/src/configurations/destinations/mouseflow/ui-config.json
similarity index 100%
rename from data/destinations/mouseflow/ui_config.json
rename to src/configurations/destinations/mouseflow/ui-config.json
diff --git a/src/configurations/destinations/mp/db-config.json b/src/configurations/destinations/mp/db-config.json
new file mode 100644
index 000000000..f6a694d0f
--- /dev/null
+++ b/src/configurations/destinations/mp/db-config.json
@@ -0,0 +1,77 @@
+{
+ "name": "MP",
+ "displayName": "Mixpanel",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "token",
+ "groupKeySettings",
+ "apiSecret",
+ "dataResidency",
+ "people",
+ "setAllTraitsByDefault",
+ "superProperties",
+ "peopleProperties",
+ "eventIncrements",
+ "propIncrements",
+ "consolidatedPageCalls",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "sourceName",
+ "crossSubdomainCookie",
+ "persistence",
+ "secureCookie",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "useNewMapping"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["alias", "group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "token",
+ "groupKeySettings",
+ "apiSecret",
+ "dataResidency",
+ "people",
+ "setAllTraitsByDefault",
+ "superProperties",
+ "peopleProperties",
+ "eventIncrements",
+ "propIncrements",
+ "consolidatedPageCalls",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "sourceName",
+ "crossSubdomainCookie",
+ "persistence",
+ "secureCookie",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "useNewMapping",
+ "serviceAccountUserName",
+ "serviceAccountSecret",
+ "projectId"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["token"]
+ }
+}
diff --git a/src/configurations/destinations/mp/metadata.json b/src/configurations/destinations/mp/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mp/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mp/schema.json b/src/configurations/destinations/mp/schema.json
new file mode 100644
index 000000000..094c8983b
--- /dev/null
+++ b/src/configurations/destinations/mp/schema.json
@@ -0,0 +1,159 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["token"],
+ "properties": {
+ "token": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "apiSecret": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "dataResidency": {
+ "type": "string",
+ "pattern": "^(us|eu)$"
+ },
+ "people": {
+ "type": "boolean"
+ },
+ "setAllTraitsByDefault": {
+ "type": "boolean"
+ },
+ "consolidatedPageCalls": {
+ "type": "boolean"
+ },
+ "trackCategorizedPages": {
+ "type": "boolean"
+ },
+ "trackNamedPages": {
+ "type": "boolean"
+ },
+ "sourceName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "crossSubdomainCookie": {
+ "type": "boolean"
+ },
+ "persistence": {
+ "type": "string",
+ "pattern": "^(none|cookie|localStorage)$"
+ },
+ "secureCookie": {
+ "type": "boolean"
+ },
+ "superProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "property": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "peopleProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "property": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventIncrements": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "property": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "propIncrements": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "property": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "groupKeySettings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "groupKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/mp/ui_config.json b/src/configurations/destinations/mp/ui-config.json
similarity index 100%
rename from data/destinations/mp/ui_config.json
rename to src/configurations/destinations/mp/ui-config.json
diff --git a/src/configurations/destinations/mssql/db-config.json b/src/configurations/destinations/mssql/db-config.json
new file mode 100644
index 000000000..cfe0e3038
--- /dev/null
+++ b/src/configurations/destinations/mssql/db-config.json
@@ -0,0 +1,63 @@
+{
+ "name": "MSSQL",
+ "displayName": "Microsoft SQL Server",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "host",
+ "database",
+ "user",
+ "password",
+ "port",
+ "sslMode",
+ "namespace",
+ "bucketProvider",
+ "bucketName",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "accountName",
+ "accountKey",
+ "useSASTokens",
+ "sasToken",
+ "credentials",
+ "secretAccessKey",
+ "useSSL",
+ "containerName",
+ "endPoint",
+ "syncFrequency",
+ "syncStartAt",
+ "excludeWindow",
+ "useRudderStorage"
+ ]
+ },
+ "secretKeys": [
+ "password",
+ "accessKeyID",
+ "accessKey",
+ "accountKey",
+ "sasToken",
+ "secretAccessKey",
+ "credentials"
+ ]
+ }
+}
diff --git a/src/configurations/destinations/mssql/metadata.json b/src/configurations/destinations/mssql/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/mssql/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/mssql/schema.json b/src/configurations/destinations/mssql/schema.json
new file mode 100644
index 000000000..e28a09699
--- /dev/null
+++ b/src/configurations/destinations/mssql/schema.json
@@ -0,0 +1,238 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": [
+ "host",
+ "database",
+ "user",
+ "password",
+ "port",
+ "sslMode",
+ "syncFrequency",
+ "useRudderStorage"
+ ],
+ "properties": {
+ "host": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "database": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "user": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "port": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "sslMode": {
+ "type": "string",
+ "pattern": "^(disable|true|false)$"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "useRudderStorage": {
+ "type": "boolean",
+ "default": false
+ },
+ "bucketProvider": {
+ "type": "string",
+ "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["useRudderStorage"]
+ },
+ "then": {
+ "required": ["bucketProvider"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "S3"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ },
+ "required": ["bucketName", "accessKeyID", "accessKey"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "GCS"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["bucketName", "credentials"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "AZURE_BLOB"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["containerName", "accountName"],
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSASTokens", "sasToken"]
+ }
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "MINIO"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "endPoint": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "secretAccessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "useSSL": {
+ "type": "boolean"
+ }
+ },
+ "required": ["bucketName", "endPoint", "accessKeyID", "secretAccessKey", "useSSL"]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/mssql/ui-config.json b/src/configurations/destinations/mssql/ui-config.json
new file mode 100644
index 000000000..bfc3ea77c
--- /dev/null
+++ b/src/configurations/destinations/mssql/ui-config.json
@@ -0,0 +1,547 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid Host",
+ "placeholder": "e.g: mssql.mydomain.com",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "database",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Database",
+ "placeholder": "e.g: rudderdb",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid User",
+ "placeholder": "e.g: rudder",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "placeholder": "e.g: rudder-password",
+ "regex": ".*",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Port",
+ "placeholder": "1433",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "labelNote": "Schema name for the warehouse where the tables are created",
+ "value": "namespace",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "regexErrorMessage": "Invalid Namespace",
+ "required": false,
+ "placeholder": "e.g: rudder-schema",
+ "footerNote": "Default will be the source name"
+ },
+ {
+ "type": "singleSelect",
+ "label": "SSL Mode",
+ "value": "sslMode",
+ "options": [
+ {
+ "name": "disable",
+ "value": "disable"
+ },
+ {
+ "name": "true",
+ "value": "true"
+ },
+ {
+ "name": "false",
+ "value": "false"
+ }
+ ],
+ "defaultOption": {
+ "name": "disable",
+ "value": "disable"
+ },
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ },
+ {
+ "type": "timeRangePicker",
+ "label": "Exclude window (Optional)",
+ "value": "excludeWindow",
+ "startTime": {
+ "label": "start time",
+ "value": "excludeWindowStartTime"
+ },
+ "endTime": {
+ "label": "end time",
+ "value": "excludeWindowEndTime"
+ },
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 1
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ },
+ {
+ "title": "Object Storage Configuration",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use RudderStack managed object storage",
+ "value": "useRudderStorage",
+ "default": false,
+ "footerNote": "Note: Only available for RudderStack managed data planes"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Choose your Storage Provider",
+ "value": "bucketProvider",
+ "options": [
+ {
+ "name": "S3",
+ "value": "S3"
+ },
+ {
+ "name": "GCS",
+ "value": "GCS"
+ },
+ {
+ "name": "AZURE_BLOB",
+ "value": "AZURE_BLOB"
+ },
+ {
+ "name": "MINIO",
+ "value": "MINIO"
+ }
+ ],
+ "defaultOption": {
+ "name": "MINIO",
+ "value": "MINIO"
+ },
+ "required": true,
+ "preRequisiteField": {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging S3 Storage Bucket Name",
+ "labelNote": "S3 Bucket to store data before loading into Mssql",
+ "value": "bucketName",
+ "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
+ "placeholder": "e.g: s3-event-logs",
+ "required": true,
+ "footerNote": "Please make sure the bucket exists in your S3"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging GCS Object Storage Bucket Name",
+ "labelNote": "GCS Bucket to store data before loading into Mssql",
+ "value": "bucketName",
+ "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
+ "placeholder": "e.g: gcs-event-logs",
+ "required": true,
+ "footerNote": "Please make sure the bucket exists in your GCS"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging Azure Blob Storage Container Name",
+ "labelNote": "Container to store data before loading into Mssql",
+ "value": "containerName",
+ "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
+ "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-event-logs",
+ "footerNote": "Please make sure the container exists in your Azure Blob Storage"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging MINIO Storage Bucket Name",
+ "labelNote": "MINIO Bucket to store data before loading into Mssql",
+ "value": "bucketName",
+ "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: minio-event-logs",
+ "footerNote": "Please make sure the bucket exists in your MINIO"
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ }
+ ],
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "S3"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "AZURE_BLOB"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "GCS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MinIO Endpoint",
+ "value": "endPoint",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Endpoint",
+ "required": true,
+ "placeholder": "e.g: play.min.io:9000"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MINIO Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "MINIO Secret Access Key",
+ "value": "secretAccessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid MinIO Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key"
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "bucketProvider",
+ "selectedValue": "MINIO"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use SSL for connection",
+ "value": "useSSL",
+ "default": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/new_relic/db-config.json b/src/configurations/destinations/new_relic/db-config.json
new file mode 100644
index 000000000..dd5a2f7a5
--- /dev/null
+++ b/src/configurations/destinations/new_relic/db-config.json
@@ -0,0 +1,43 @@
+{
+ "name": "NEW_RELIC",
+ "displayName": "New Relic",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "cdkEnabled": true,
+ "includeKeys": [
+ "accountId",
+ "insertKey",
+ "dataCenter",
+ "customEventType",
+ "sendDeviceContext",
+ "sendUserIdanonymousId"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "insertKey",
+ "dataCenter",
+ "customEventType",
+ "sendDeviceContext",
+ "sendUserIdanonymousId"
+ ]
+ },
+ "secretKeys": ["accountId", "insertKey"]
+ }
+}
diff --git a/src/configurations/destinations/new_relic/metadata.json b/src/configurations/destinations/new_relic/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/new_relic/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/new_relic/schema.json b/src/configurations/destinations/new_relic/schema.json
new file mode 100644
index 000000000..edbbaa222
--- /dev/null
+++ b/src/configurations/destinations/new_relic/schema.json
@@ -0,0 +1,31 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["accountId", "insertKey"],
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "insertKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "dataCenter": {
+ "type": "string",
+ "pattern": "^(us|eu)$"
+ },
+ "customEventType": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "sendDeviceContext": {
+ "type": "boolean"
+ },
+ "sendUserIdanonymousId": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/new_relic/ui-config.json b/src/configurations/destinations/new_relic/ui-config.json
new file mode 100644
index 000000000..d0c13767a
--- /dev/null
+++ b/src/configurations/destinations/new_relic/ui-config.json
@@ -0,0 +1,74 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account ID",
+ "value": "accountId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Account ID",
+ "required": true,
+ "placeholder": "e.g. 1234567",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Insert Key",
+ "value": "insertKey",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Insert Key",
+ "required": true,
+ "placeholder": "e.g. zXvp6bWcSL3muCRuGrWyUA",
+ "secret": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Data Center",
+ "value": "dataCenter",
+ "mode": "single",
+ "options": [
+ {
+ "name": "US(standard)",
+ "value": "us"
+ },
+ {
+ "name": "EU",
+ "value": "eu"
+ }
+ ],
+ "defaultOption": {
+ "name": "US(standard)",
+ "value": "us"
+ }
+ }
+ ]
+ },
+ {
+ "title": "Other Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Custom Default Event Type",
+ "value": "customEventType",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g. abcdef"
+ },
+ {
+ "type": "checkbox",
+ "label": "Send Device Context",
+ "value": "sendDeviceContext",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Send UserId and AnonymousId",
+ "value": "sendUserIdanonymousId",
+ "default": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/olark/db_config.json b/src/configurations/destinations/olark/db-config.json
similarity index 100%
rename from data/destinations/olark/db_config.json
rename to src/configurations/destinations/olark/db-config.json
diff --git a/src/configurations/destinations/olark/metadata.json b/src/configurations/destinations/olark/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/olark/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/olark/schema.json b/src/configurations/destinations/olark/schema.json
similarity index 100%
rename from data/destinations/olark/schema.json
rename to src/configurations/destinations/olark/schema.json
diff --git a/data/destinations/olark/ui_config.json b/src/configurations/destinations/olark/ui-config.json
similarity index 100%
rename from data/destinations/olark/ui_config.json
rename to src/configurations/destinations/olark/ui-config.json
diff --git a/src/configurations/destinations/ometria/db-config.json b/src/configurations/destinations/ometria/db-config.json
new file mode 100644
index 000000000..ffbecbef2
--- /dev/null
+++ b/src/configurations/destinations/ometria/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "OMETRIA",
+ "displayName": "Ometria",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "marketingOptin", "allowMarketing", "allowTransactional"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/ometria/metadata.json b/src/configurations/destinations/ometria/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/ometria/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/ometria/schema.json b/src/configurations/destinations/ometria/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/ometria/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/ometria/ui-config.json b/src/configurations/destinations/ometria/ui-config.json
new file mode 100644
index 000000000..20b35a10c
--- /dev/null
+++ b/src/configurations/destinations/ometria/ui-config.json
@@ -0,0 +1,65 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. tZrPAgHyn2jMWOVGKrS6gBGLYT8v9kJE",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Contact Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Marketing Optin",
+ "value": "marketingOptin",
+ "required": false,
+ "placeholder": "Explicitly Opted Out",
+ "options": [
+ {
+ "name": "Explicitly Opted Out",
+ "value": "EXPLICITLY_OPTEDOUT"
+ },
+ {
+ "name": "Not Specified",
+ "value": "NOT_SPECIFIED"
+ },
+ {
+ "name": "Explicitly Opted In",
+ "value": "EXPLICITLY_OPTEDIN"
+ }
+ ],
+ "defaultOption": {
+ "name": "Explicitly Opted Out",
+ "value": "EXPLICITLY_OPTEDOUT"
+ }
+ }
+ ]
+ },
+ {
+ "title": "SMS Channel Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Allow Transactional",
+ "value": "allowTransactional",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Allow Marketing",
+ "value": "allowMarketing",
+ "default": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/one_signal/db-config.json b/src/configurations/destinations/one_signal/db-config.json
new file mode 100644
index 000000000..b08ba4e0d
--- /dev/null
+++ b/src/configurations/destinations/one_signal/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "ONE_SIGNAL",
+ "displayName": "OneSignal",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track", "group"],
+ "destConfig": {
+ "defaultConfig": [
+ "appId",
+ "emailDeviceType",
+ "smsDeviceType",
+ "eventAsTags",
+ "allowedProperties"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/one_signal/metadata.json b/src/configurations/destinations/one_signal/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/one_signal/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/one_signal/schema.json b/src/configurations/destinations/one_signal/schema.json
new file mode 100644
index 000000000..bc815f050
--- /dev/null
+++ b/src/configurations/destinations/one_signal/schema.json
@@ -0,0 +1,38 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["appId"],
+ "properties": {
+ "appId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "emailDeviceType": {
+ "type": "boolean"
+ },
+ "smsDeviceType": {
+ "type": "boolean"
+ },
+ "eventAsTags": {
+ "type": "boolean"
+ },
+ "allowedProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "propertyName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/one_signal/ui-config.json b/src/configurations/destinations/one_signal/ui-config.json
new file mode 100644
index 000000000..e3201ade0
--- /dev/null
+++ b/src/configurations/destinations/one_signal/ui-config.json
@@ -0,0 +1,60 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "App Id",
+ "value": "appId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid App Id",
+ "required": true,
+ "placeholder": "e.g. 7acc2c99-818c-4a28-b98e-6cd8a994da65",
+ "secret": true,
+ "footerNote": "Your OneSignal App Id"
+ }
+ ]
+ },
+ {
+ "title": "Device Type",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Toggle on to add a device using email",
+ "value": "emailDeviceType",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Toggle on to add a device using phone number",
+ "value": "smsDeviceType",
+ "default": false
+ }
+ ]
+ },
+ {
+ "title": "Property Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Toggle on to concatenate event name with properties",
+ "value": "eventAsTags",
+ "default": false
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "allowedProperties",
+ "label": "Allowed Property List",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "propertyName",
+ "required": false
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/optimizely/db-config.json b/src/configurations/destinations/optimizely/db-config.json
new file mode 100644
index 000000000..5f98279b1
--- /dev/null
+++ b/src/configurations/destinations/optimizely/db-config.json
@@ -0,0 +1,40 @@
+{
+ "name": "OPTIMIZELY",
+ "displayName": "Optimizely Web",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "sendExperimentTrack",
+ "sendExperimentTrackAsNonInteractive",
+ "revenueOnlyOnOrderCompleted",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "sendExperimentIdentify",
+ "customCampaignProperties",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "sendExperimentTrack",
+ "sendExperimentTrackAsNonInteractive",
+ "revenueOnlyOnOrderCompleted",
+ "trackCategorizedPages",
+ "trackNamedPages",
+ "sendExperimentIdentify",
+ "customCampaignProperties",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/optimizely/metadata.json b/src/configurations/destinations/optimizely/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/optimizely/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/optimizely/schema.json b/src/configurations/destinations/optimizely/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/optimizely/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/optimizely/ui_config.json b/src/configurations/destinations/optimizely/ui-config.json
similarity index 100%
rename from data/destinations/optimizely/ui_config.json
rename to src/configurations/destinations/optimizely/ui-config.json
diff --git a/src/configurations/destinations/optimizely_fullstack/db-config.json b/src/configurations/destinations/optimizely_fullstack/db-config.json
new file mode 100644
index 000000000..0aa9d047b
--- /dev/null
+++ b/src/configurations/destinations/optimizely_fullstack/db-config.json
@@ -0,0 +1,32 @@
+{
+ "name": "OPTIMIZELY_FULLSTACK",
+ "displayName": "Optimizely Fullstack",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "trackKnownUsers",
+ "nonInteraction",
+ "listen",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["android", "ios"],
+ "destConfig": {
+ "defaultConfig": [
+ "trackKnownUsers",
+ "nonInteraction",
+ "listen",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/optimizely_fullstack/metadata.json b/src/configurations/destinations/optimizely_fullstack/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/optimizely_fullstack/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/optimizely_fullstack/schema.json b/src/configurations/destinations/optimizely_fullstack/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/optimizely_fullstack/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/optimizely_fullstack/ui-config.json b/src/configurations/destinations/optimizely_fullstack/ui-config.json
new file mode 100644
index 000000000..b0dcb9b8d
--- /dev/null
+++ b/src/configurations/destinations/optimizely_fullstack/ui-config.json
@@ -0,0 +1,106 @@
+{
+ "uiConfig": [
+ {
+ "title": "Only Track known users",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Track Known Users",
+ "value": "trackKnownUsers",
+ "required": false,
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Sends the experiment and variation information",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Sends the experiment and variation information as properties on a track call",
+ "value": "listen",
+ "required": false,
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Non-Interaction Event",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Specifies the Experiment Viewed as a non-interaction event for Google Analytics",
+ "value": "nonInteraction",
+ "required": false,
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "defaultCheckbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/pagerduty/db_config.json b/src/configurations/destinations/pagerduty/db-config.json
similarity index 100%
rename from data/destinations/pagerduty/db_config.json
rename to src/configurations/destinations/pagerduty/db-config.json
diff --git a/src/configurations/destinations/pagerduty/metadata.json b/src/configurations/destinations/pagerduty/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/pagerduty/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/pagerduty/schema.json b/src/configurations/destinations/pagerduty/schema.json
similarity index 100%
rename from data/destinations/pagerduty/schema.json
rename to src/configurations/destinations/pagerduty/schema.json
diff --git a/data/destinations/pagerduty/ui_config.json b/src/configurations/destinations/pagerduty/ui-config.json
similarity index 100%
rename from data/destinations/pagerduty/ui_config.json
rename to src/configurations/destinations/pagerduty/ui-config.json
diff --git a/data/destinations/pardot/db_config.json b/src/configurations/destinations/pardot/db-config.json
similarity index 100%
rename from data/destinations/pardot/db_config.json
rename to src/configurations/destinations/pardot/db-config.json
diff --git a/src/configurations/destinations/pardot/metadata.json b/src/configurations/destinations/pardot/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/pardot/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pardot/schema.json b/src/configurations/destinations/pardot/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/pardot/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/pardot/ui-config.json b/src/configurations/destinations/pardot/ui-config.json
new file mode 100644
index 000000000..70acdff8e
--- /dev/null
+++ b/src/configurations/destinations/pardot/ui-config.json
@@ -0,0 +1,26 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Business Unit Id",
+ "value": "businessUnitId",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "0Uv2b000000k9tHUHT",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Campaign Id",
+ "value": "campaignId",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "12345"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/pendo/db-config.json b/src/configurations/destinations/pendo/db-config.json
new file mode 100644
index 000000000..febe8fe98
--- /dev/null
+++ b/src/configurations/destinations/pendo/db-config.json
@@ -0,0 +1,23 @@
+{
+ "name": "PENDO",
+ "displayName": "Pendo",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/pendo/metadata.json b/src/configurations/destinations/pendo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/pendo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pendo/schema.json b/src/configurations/destinations/pendo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/pendo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/pendo/ui_config.json b/src/configurations/destinations/pendo/ui-config.json
similarity index 100%
rename from data/destinations/pendo/ui_config.json
rename to src/configurations/destinations/pendo/ui-config.json
diff --git a/src/configurations/destinations/persistiq/db-config.json b/src/configurations/destinations/persistiq/db-config.json
new file mode 100644
index 000000000..3b7cd1f3e
--- /dev/null
+++ b/src/configurations/destinations/persistiq/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "PERSISTIQ",
+ "displayName": "PersistIQ",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["apiKey"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "web",
+ "cloud",
+ "mobile",
+ "android",
+ "ios",
+ "unity",
+ "amp",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "group"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "persistIqAttributesMapping"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/persistiq/metadata.json b/src/configurations/destinations/persistiq/metadata.json
new file mode 100644
index 000000000..bd62701fa
--- /dev/null
+++ b/src/configurations/destinations/persistiq/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["group", "identify"],
+ "device-mode": {
+ "web": ["group", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/persistiq/schema.json b/src/configurations/destinations/persistiq/schema.json
similarity index 100%
rename from data/destinations/persistiq/schema.json
rename to src/configurations/destinations/persistiq/schema.json
diff --git a/src/configurations/destinations/persistiq/ui-config.json b/src/configurations/destinations/persistiq/ui-config.json
new file mode 100644
index 000000000..f5a8b2ed5
--- /dev/null
+++ b/src/configurations/destinations/persistiq/ui-config.json
@@ -0,0 +1,36 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "PersistIQ REST API Key",
+ "value": "apiKey",
+ "regex": "^(.{1,100})$",
+ "required": true,
+ "placeholder": "e.g. 2c646069c3ery92322cc0dab36cd060ad",
+ "secret": true,
+ "footerNote": "Enter the API Key from PersistIQ Settings for Authentication"
+ }
+ ]
+ },
+ {
+ "title": "Mapping Configurations",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder user attributes to Persist IQ Lead attributes",
+ "value": "persistIqAttributesMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. Industry Name",
+ "placeholderRight": "e.g. industry",
+ "labelLeft": "Rudder Property",
+ "labelRight": "PersistIQ Lead attribute"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/personalize/db_config.json b/src/configurations/destinations/personalize/db-config.json
similarity index 100%
rename from data/destinations/personalize/db_config.json
rename to src/configurations/destinations/personalize/db-config.json
diff --git a/src/configurations/destinations/personalize/metadata.json b/src/configurations/destinations/personalize/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/personalize/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/personalize/schema.json b/src/configurations/destinations/personalize/schema.json
new file mode 100644
index 000000000..fb151e558
--- /dev/null
+++ b/src/configurations/destinations/personalize/schema.json
@@ -0,0 +1,58 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["region"],
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "accessKeyId": {
+ "type": "string",
+ "pattern": "^(.{0,100})$"
+ },
+ "secretAccessKey": {
+ "type": "string",
+ "pattern": "^(.{0,100})$"
+ },
+ "region": {
+ "type": "string",
+ "pattern": "^(.{0,100})$"
+ },
+ "trackingId": {
+ "type": "string",
+ "pattern": "^(.{0,100})$"
+ },
+ "datasetARN": {
+ "type": "string",
+ "pattern": "arn:([a-z/d-]+):personalize:.*:.*:.+"
+ },
+ "eventChoice": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(PutEvents|PutUsers|PutItems)$"
+ },
+ "customMappings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "disableStringify": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/data/destinations/personalize/ui_config.json b/src/configurations/destinations/personalize/ui-config.json
similarity index 100%
rename from data/destinations/personalize/ui_config.json
rename to src/configurations/destinations/personalize/ui-config.json
diff --git a/src/configurations/destinations/pinterest_tag/db-config.json b/src/configurations/destinations/pinterest_tag/db-config.json
new file mode 100644
index 000000000..00f9b583a
--- /dev/null
+++ b/src/configurations/destinations/pinterest_tag/db-config.json
@@ -0,0 +1,55 @@
+{
+ "name": "PINTEREST_TAG",
+ "displayName": "Pinterest Tag",
+ "config": {
+ "cdkV2TestThreshold": 1,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": false,
+ "includeKeys": [
+ "tagId",
+ "advertiserId",
+ "appId",
+ "customProperties",
+ "eventsMapping",
+ "enhancedMatch",
+ "enableDeduplication",
+ "deduplicationKey",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "tagId",
+ "appId",
+ "advertiserId",
+ "sendingUnHashedData",
+ "enableDeduplication",
+ "deduplicationKey",
+ "customProperties",
+ "eventsMapping",
+ "enhancedMatch",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/pinterest_tag/metadata.json b/src/configurations/destinations/pinterest_tag/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/pinterest_tag/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pinterest_tag/schema.json b/src/configurations/destinations/pinterest_tag/schema.json
new file mode 100644
index 000000000..ec58e937a
--- /dev/null
+++ b/src/configurations/destinations/pinterest_tag/schema.json
@@ -0,0 +1,106 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "properties": {
+ "tagId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$"
+ },
+ "advertiserId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$"
+ },
+ "appId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$"
+ },
+ "sendingUnHashedData": {
+ "type": "boolean"
+ },
+ "enableDeduplication": {
+ "type": "boolean"
+ },
+ "deduplicationKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "enhancedMatch": {
+ "type": "boolean"
+ },
+ "eventsMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "customProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pinterest_tag/ui-config.json b/src/configurations/destinations/pinterest_tag/ui-config.json
new file mode 100644
index 000000000..998a69c8d
--- /dev/null
+++ b/src/configurations/destinations/pinterest_tag/ui-config.json
@@ -0,0 +1,225 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "TAG ID",
+ "value": "tagId",
+ "required": false,
+ "placeholder": "e.g: 123456789",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "App Store App ID",
+ "value": "appId",
+ "required": false,
+ "placeholder": "e.g: 429047995",
+ "secret": false,
+ "footerNote": "Relevant if ios source is connected"
+ },
+ {
+ "type": "textInput",
+ "label": "Pinterest Advertiser ID",
+ "value": "advertiserId",
+ "required": false,
+ "placeholder": "e.g: 429047995",
+ "secret": true,
+ "footerNote": "Required field for cloud mode integration"
+ }
+ ]
+ },
+ {
+ "title": "Other Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable hashing for user data conversions",
+ "value": "sendingUnHashedData",
+ "default": true,
+ "footerNote": "Rudderstack will hash your user data by default. Switch this off if you are already sending hashed data"
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable Event Deduplication",
+ "value": "enableDeduplication",
+ "default": false,
+ "footerNote": "If not enabled here, Rudderstack will send messageId as event_id field."
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "enableDeduplication",
+ "selectedValue": true
+ }
+ ],
+ "label": "Deduplication Key",
+ "value": "deduplicationKey",
+ "placeholder": "e.g: messageId",
+ "required": false,
+ "footerNote": "Rudderstack will send this key-value from payload as an event deduplication key"
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable Enhanced Match on Page Load",
+ "value": "enhancedMatch",
+ "required": false,
+ "default": true,
+ "footerNote": "If this setting is enabled, the Pinterest tag will be loaded with the existing traits of the logged user"
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "customProperties",
+ "footerNote": "If you wish to send any extra custom properties to Pinterest - in addition to the standard Pinterest properties - then list them below. These properties are case-insensitive, and can be nested. For example, if you want to send rudderanalytics.track('Event', {customProperty: { customValue: 2 }, someRandomMailId: 'user@gmail.com'}) then input these two property customProperty.customValue and someRandomMailId",
+ "customFields": [
+ {
+ "type": "textInput",
+ "required": false,
+ "value": "properties",
+ "label": "Custom Properties",
+ "placeholder": "customProperty.customValue or someRandomMailId"
+ }
+ ]
+ },
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map Your Events To Pinterest Events.",
+ "labelLeft": "Event Name",
+ "labelRight": "Pinterest Event",
+ "value": "eventsMapping",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g: Order Completed",
+ "placeholderRight": "e.g: Checkout",
+ "options": [
+ {
+ "name": "Lead",
+ "value": "Lead"
+ },
+ {
+ "name": "PageVisit",
+ "value": "PageVisit"
+ },
+ {
+ "name": "ViewCategory",
+ "value": "ViewCategory"
+ },
+ {
+ "name": "SignUp",
+ "value": "Signup"
+ },
+ {
+ "name": "WatchVideo",
+ "value": "WatchVideo"
+ },
+ {
+ "name": "Checkout",
+ "value": "Checkout"
+ },
+ {
+ "name": "Search",
+ "value": "Search"
+ },
+ {
+ "name": "AddToCart",
+ "value": "AddToCart"
+ },
+ {
+ "name": "Custom",
+ "value": "Custom"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Consent Settings",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "oneTrustCookieCategories",
+ "label": "OneTrust Cookie Categories",
+ "customFields": [
+ {
+ "type": "textInput",
+ "placeholder": "Marketing",
+ "value": "oneTrustCookieCategory",
+ "label": "Category Name/ID",
+ "required": false
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/pipedream/db-config.json b/src/configurations/destinations/pipedream/db-config.json
new file mode 100644
index 000000000..3131ed05a
--- /dev/null
+++ b/src/configurations/destinations/pipedream/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "PIPEDREAM",
+ "displayName": "Pipedream",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["pipedreamUrl", "pipedreamMethod", "headers"]
+ },
+ "secretKeys": ["headers.to"]
+ }
+}
diff --git a/src/configurations/destinations/pipedream/metadata.json b/src/configurations/destinations/pipedream/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/pipedream/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pipedream/schema.json b/src/configurations/destinations/pipedream/schema.json
new file mode 100644
index 000000000..0d836e59f
--- /dev/null
+++ b/src/configurations/destinations/pipedream/schema.json
@@ -0,0 +1,33 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["pipedreamUrl"],
+ "properties": {
+ "pipedreamUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
+ },
+ "pipedreamMethod": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(POST|PUT|PATCH|GET|DELETE)$)"
+ },
+ "headers": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100000})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pipedream/ui-config.json b/src/configurations/destinations/pipedream/ui-config.json
new file mode 100644
index 000000000..8a52bb2f2
--- /dev/null
+++ b/src/configurations/destinations/pipedream/ui-config.json
@@ -0,0 +1,60 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Pipedream URL",
+ "value": "pipedreamUrl",
+ "required": true,
+ "placeholder": "http://www.abcd.com",
+ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(https?|ftp)://[^\\s/$.?#].[^\\s]*$"
+ },
+ {
+ "type": "singleSelect",
+ "label": "URL Method",
+ "value": "pipedreamMethod",
+ "placeholder": "POST",
+ "options": [
+ {
+ "name": "POST",
+ "value": "POST"
+ },
+ {
+ "name": "PUT",
+ "value": "PUT"
+ },
+ {
+ "name": "PATCH",
+ "value": "PATCH"
+ },
+ {
+ "name": "GET",
+ "value": "GET"
+ },
+ {
+ "name": "DELETE",
+ "value": "DELETE"
+ }
+ ],
+ "defaultOption": {
+ "name": "POST",
+ "value": "POST"
+ }
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Headers",
+ "labelLeft": "Key",
+ "labelRight": "Value",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "content-type",
+ "placeholderRight": "application/json",
+ "value": "headers"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/pipedrive/db-config.json b/src/configurations/destinations/pipedrive/db-config.json
new file mode 100644
index 000000000..e8ec8d8bf
--- /dev/null
+++ b/src/configurations/destinations/pipedrive/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "PIPEDRIVE",
+ "displayName": "Pipedrive",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "apiToken",
+ "userIdToken",
+ "groupIdToken",
+ "enableUserCreation",
+ "personsMap",
+ "leadsMap",
+ "organizationMap"
+ ]
+ },
+ "secretKeys": ["apiToken"]
+ }
+}
diff --git a/src/configurations/destinations/pipedrive/metadata.json b/src/configurations/destinations/pipedrive/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/pipedrive/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/pipedrive/schema.json b/src/configurations/destinations/pipedrive/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/pipedrive/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/pipedrive/ui-config.json b/src/configurations/destinations/pipedrive/ui-config.json
new file mode 100644
index 000000000..1130e499b
--- /dev/null
+++ b/src/configurations/destinations/pipedrive/ui-config.json
@@ -0,0 +1,85 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Api Token",
+ "value": "apiToken",
+ "regex": ".*",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
+ "footerNote": "Your Pipedrive Api Token"
+ },
+ {
+ "type": "textInput",
+ "label": "UserID Token",
+ "value": "userIdToken",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
+ "footerNote": "Your UserId Field Token"
+ },
+ {
+ "type": "textInput",
+ "label": "GroupId Token",
+ "value": "groupIdToken",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g. 13N0gkA9Be_2gR2afax2G4j6h4MoCOgmDcCRgopTc905",
+ "footerNote": "Your GroupId Field Token"
+ }
+ ]
+ },
+ {
+ "title": "Custom Field Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable User Creation",
+ "value": "enableUserCreation",
+ "default": false,
+ "footerNote": "If turned on, RudderStack will create User (if not found) for all events"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Person Field Mapping",
+ "footerNote": "",
+ "labelLeft": "Field Name",
+ "labelRight": "Field Token",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Gender",
+ "placeholderRight": "e.g: 3N0gkA9Be_2gR2afax2",
+ "value": "personsMap"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Leads Field Mapping",
+ "footerNote": "",
+ "labelLeft": "Field Name",
+ "labelRight": "Field Token",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Location",
+ "placeholderRight": "e.g: 3N0gkA9Be_2gR2afax2",
+ "value": "leadsMap"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Organization Field Mapping",
+ "footerNote": "",
+ "labelLeft": "Field Name",
+ "labelRight": "Field Token",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: MemberCount",
+ "placeholderRight": "e.g: 3N0gkA9Be_2gR2afax2",
+ "value": "organizationMap"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/podsights/db_config.json b/src/configurations/destinations/podsights/db-config.json
similarity index 100%
rename from data/destinations/podsights/db_config.json
rename to src/configurations/destinations/podsights/db-config.json
diff --git a/data/destinations/podsights/metadata.json b/src/configurations/destinations/podsights/metadata.json
similarity index 100%
rename from data/destinations/podsights/metadata.json
rename to src/configurations/destinations/podsights/metadata.json
diff --git a/data/destinations/podsights/schema.json b/src/configurations/destinations/podsights/schema.json
similarity index 100%
rename from data/destinations/podsights/schema.json
rename to src/configurations/destinations/podsights/schema.json
diff --git a/data/destinations/podsights/ui_config.json b/src/configurations/destinations/podsights/ui-config.json
similarity index 100%
rename from data/destinations/podsights/ui_config.json
rename to src/configurations/destinations/podsights/ui-config.json
diff --git a/src/configurations/destinations/post_affiliate_pro/db-config.json b/src/configurations/destinations/post_affiliate_pro/db-config.json
new file mode 100644
index 000000000..d6aabe6e6
--- /dev/null
+++ b/src/configurations/destinations/post_affiliate_pro/db-config.json
@@ -0,0 +1,55 @@
+{
+ "name": "POST_AFFILIATE_PRO",
+ "displayName": "Post Affiliate Pro",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "url",
+ "mergeProducts",
+ "accountId",
+ "paramNameUserId",
+ "disableTrackingMethod",
+ "cookieDomain",
+ "cookieToCustomField",
+ "affLinkId",
+ "idName",
+ "cookieLinkId",
+ "cookieName",
+ "clickEvents",
+ "campaignToCustomField",
+ "affiliateToCustomField",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "url",
+ "mergeProducts",
+ "accountId",
+ "paramNameUserId",
+ "disableTrackingMethod",
+ "cookieDomain",
+ "affLinkId",
+ "affLinkId",
+ "idName",
+ "cookieLinkId",
+ "cookieName",
+ "clickEvents",
+ "cookieToCustomField",
+ "campaignToCustomField",
+ "affiliateToCustomField",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/post_affiliate_pro/metadata.json b/src/configurations/destinations/post_affiliate_pro/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/post_affiliate_pro/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/post_affiliate_pro/schema.json b/src/configurations/destinations/post_affiliate_pro/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/post_affiliate_pro/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/post_affiliate_pro/ui-config.json b/src/configurations/destinations/post_affiliate_pro/ui-config.json
new file mode 100644
index 000000000..225c0c1e4
--- /dev/null
+++ b/src/configurations/destinations/post_affiliate_pro/ui-config.json
@@ -0,0 +1,218 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "URL of Post Affiliate Pro",
+ "value": "url",
+ "regex": "^(?!.*\\.ngrok\\.io).*$",
+ "required": true,
+ "placeholder": "https://abcdefgh.postaffiliatepro.com/scripts/trackjs.js"
+ },
+ {
+ "type": "textInput",
+ "label": "Account Id",
+ "value": "accountId",
+ "required": false,
+ "placeholder": "default1",
+ "footerNote": "ID of your network merchant account"
+ },
+ {
+ "type": "textInput",
+ "label": "Param Name UserId",
+ "value": "paramNameUserId",
+ "required": false,
+ "placeholder": "new_a_aid_parameter",
+ "footerNote": "Changed name of Affailiate ID / referrer ID parameter name"
+ },
+ {
+ "type": "textInput",
+ "label": "Cookie Domain",
+ "value": "cookieDomain",
+ "regex": "^(?!.*\\.ngrok\\.io).*$",
+ "required": false,
+ "placeholder": "maindomain.com",
+ "footerNote": ""
+ },
+ {
+ "type": "textInput",
+ "label": "Cookie To Custom Field",
+ "value": "cookieToCustomField",
+ "required": false,
+ "placeholder": "id_field",
+ "footerNote": "Id of the field where cookie will be written"
+ },
+ {
+ "type": "textInput",
+ "label": "Campaign To Custom Field",
+ "value": "campaignToCustomField",
+ "required": false,
+ "placeholder": "campaignCookieInfoId",
+ "footerNote": "Id of the field where campaign will be written"
+ },
+ {
+ "type": "textInput",
+ "label": "Affiliate To Custom Field",
+ "value": "affiliateToCustomField",
+ "required": false,
+ "placeholder": "id_field",
+ "footerNote": "Id of the field where affiliate will be written"
+ }
+ ]
+ },
+ {
+ "title": "Affiliate To Link",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Affiliate Link Id",
+ "value": "affLinkId",
+ "placeholder": "affLinkId",
+ "footerNote": "Id of dom object where affiliateId needed to add."
+ },
+ {
+ "type": "textInput",
+ "placeholder": "a_aid",
+ "label": "AffliateId parameter name",
+ "value": "idName",
+ "footerNote": "Param name for AffiliateId"
+ }
+ ]
+ },
+ {
+ "title": "Cookie To Link",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Cookie Link Id",
+ "value": "cookieLinkId",
+ "placeholder": "cookieLinkId",
+ "footerNote": "Id of dom object where cookie needed to add."
+ },
+ {
+ "type": "textInput",
+ "placeholder": "papCookie",
+ "label": "Cookie parameter name",
+ "value": "cookieName",
+ "footerNote": "Param name for Cookie"
+ }
+ ]
+ },
+ {
+ "title": "Event Track Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Merge Products",
+ "value": "mergeProducts",
+ "required": false,
+ "default": true,
+ "footerNote": "If you make it false, individual sale object will be created for each products."
+ },
+ {
+ "type": "checkbox",
+ "label": "Disable Tracking Method",
+ "value": "disableTrackingMethod",
+ "required": false,
+ "default": true,
+ "footerNote": "In case you wish to disable flash cookie creation for any reason make it false."
+ },
+ {
+ "type": "textInput",
+ "label": "List of events for click",
+ "value": "clickEvents",
+ "required": false,
+ "placeholder": "clicked,visited",
+ "footerNote": "Enter the name of the events in a comma seperated form"
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "defaultCheckbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Consent Settings",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "oneTrustCookieCategories",
+ "label": "OneTrust Cookie Categories",
+ "customFields": [
+ {
+ "type": "textInput",
+ "placeholder": "Marketing",
+ "value": "oneTrustCookieCategory",
+ "label": "Category Name/ID",
+ "required": false
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/postgres/db_config.json b/src/configurations/destinations/postgres/db-config.json
similarity index 100%
rename from data/destinations/postgres/db_config.json
rename to src/configurations/destinations/postgres/db-config.json
diff --git a/src/configurations/destinations/postgres/metadata.json b/src/configurations/destinations/postgres/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/postgres/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/postgres/schema.json b/src/configurations/destinations/postgres/schema.json
new file mode 100644
index 000000000..733ff1f6f
--- /dev/null
+++ b/src/configurations/destinations/postgres/schema.json
@@ -0,0 +1,300 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": [
+ "host",
+ "database",
+ "user",
+ "password",
+ "port",
+ "sslMode",
+ "syncFrequency",
+ "useRudderStorage"
+ ],
+ "properties": {
+ "host": {
+ "type": "string",
+ "pattern": "(^env[.].+)|(?!.*.ngrok.io)^(.{1,100})$"
+ },
+ "database": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "user": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "port": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "sslMode": {
+ "type": "string",
+ "pattern": "^(disable|require|verify-ca)$"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "jsonPaths": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "useRudderStorage": {
+ "type": "boolean",
+ "default": false
+ },
+ "bucketProvider": {
+ "type": "string",
+ "pattern": "^(S3|GCS|AZURE_BLOB|MINIO)$"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "useSSH": {
+ "const": true
+ }
+ },
+ "required": ["useSSH"]
+ },
+ "then": {
+ "properties": {
+ "sshHost": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,255})$"
+ },
+ "sshPort": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,255})$"
+ },
+ "sshUser": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,255})$"
+ },
+ "sshPublicKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,10000})$"
+ }
+ },
+ "required": ["sshHost", "sshPort", "sshUser", "sshPublicKey"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["useRudderStorage"]
+ },
+ "then": {
+ "required": ["bucketProvider"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "S3"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ }
+ },
+ "required": ["bucketName", "accessKeyID", "accessKey"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "GCS"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["bucketName", "credentials"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "AZURE_BLOB"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["containerName", "accountName"],
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["useSASTokens", "sasToken"]
+ }
+ ]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "bucketProvider": {
+ "const": "MINIO"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["bucketProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "endPoint": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?!.*\\.ngrok\\.io)(.{1,100})$"
+ },
+ "secretAccessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "useSSL": {
+ "type": "boolean"
+ }
+ },
+ "required": ["bucketName", "endPoint", "accessKeyID", "secretAccessKey", "useSSL"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "sslMode": {
+ "const": "verify-ca"
+ }
+ },
+ "required": ["sslMode"]
+ },
+ "then": {
+ "properties": {
+ "clientKey": {
+ "type": "string",
+ "pattern": "-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----"
+ },
+ "clientCert": {
+ "type": "string",
+ "pattern": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----"
+ },
+ "serverCA": {
+ "type": "string",
+ "pattern": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----"
+ }
+ },
+ "required": ["clientKey", "clientCert", "serverCA"]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/data/destinations/postgres/ui_config.json b/src/configurations/destinations/postgres/ui-config.json
similarity index 100%
rename from data/destinations/postgres/ui_config.json
rename to src/configurations/destinations/postgres/ui-config.json
diff --git a/src/configurations/destinations/posthog/db-config.json b/src/configurations/destinations/posthog/db-config.json
new file mode 100644
index 000000000..881a77ce3
--- /dev/null
+++ b/src/configurations/destinations/posthog/db-config.json
@@ -0,0 +1,59 @@
+{
+ "name": "POSTHOG",
+ "displayName": "PostHog",
+ "config": {
+ "includeKeys": [
+ "teamApiKey",
+ "yourInstance",
+ "autocapture",
+ "capturePageView",
+ "disableSessionRecording",
+ "propertyBlackList",
+ "xhrHeaders",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "enableLocalStoragePersistence",
+ "eventFilteringOption",
+ "useV2Group"
+ ],
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["alias", "group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "teamApiKey",
+ "yourInstance",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "useV2Group"
+ ],
+ "web": [
+ "useNativeSDK",
+ "autocapture",
+ "capturePageView",
+ "disableSessionRecording",
+ "propertyBlackList",
+ "xhrHeaders",
+ "oneTrustCookieCategories",
+ "enableLocalStoragePersistence"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/posthog/metadata.json b/src/configurations/destinations/posthog/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/posthog/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/posthog/schema.json b/src/configurations/destinations/posthog/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/posthog/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/posthog/ui_config.json b/src/configurations/destinations/posthog/ui-config.json
similarity index 100%
rename from data/destinations/posthog/ui_config.json
rename to src/configurations/destinations/posthog/ui-config.json
diff --git a/src/configurations/destinations/profitwell/db-config.json b/src/configurations/destinations/profitwell/db-config.json
new file mode 100644
index 000000000..44a5f3ab6
--- /dev/null
+++ b/src/configurations/destinations/profitwell/db-config.json
@@ -0,0 +1,41 @@
+{
+ "name": "PROFITWELL",
+ "displayName": "ProfitWell",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "publicApiKey",
+ "siteType",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "privateApiKey",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "publicApiKey", "siteType", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["privateApiKey", "publicApiKey"]
+ }
+}
diff --git a/src/configurations/destinations/profitwell/metadata.json b/src/configurations/destinations/profitwell/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/profitwell/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/profitwell/schema.json b/src/configurations/destinations/profitwell/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/profitwell/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/profitwell/ui_config.json b/src/configurations/destinations/profitwell/ui-config.json
similarity index 100%
rename from data/destinations/profitwell/ui_config.json
rename to src/configurations/destinations/profitwell/ui-config.json
diff --git a/data/destinations/qualaroo/db_config.json b/src/configurations/destinations/qualaroo/db-config.json
similarity index 100%
rename from data/destinations/qualaroo/db_config.json
rename to src/configurations/destinations/qualaroo/db-config.json
diff --git a/src/configurations/destinations/qualaroo/metadata.json b/src/configurations/destinations/qualaroo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/qualaroo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/qualaroo/schema.json b/src/configurations/destinations/qualaroo/schema.json
similarity index 100%
rename from data/destinations/qualaroo/schema.json
rename to src/configurations/destinations/qualaroo/schema.json
diff --git a/data/destinations/qualaroo/ui_config.json b/src/configurations/destinations/qualaroo/ui-config.json
similarity index 100%
rename from data/destinations/qualaroo/ui_config.json
rename to src/configurations/destinations/qualaroo/ui-config.json
diff --git a/src/configurations/destinations/qualtrics/db-config.json b/src/configurations/destinations/qualtrics/db-config.json
new file mode 100644
index 000000000..d4c0531d2
--- /dev/null
+++ b/src/configurations/destinations/qualtrics/db-config.json
@@ -0,0 +1,33 @@
+{
+ "name": "QUALTRICS",
+ "displayName": "Qualtrics",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "projectId",
+ "brandId",
+ "enableGenericPageTitle",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web", "android", "ios"],
+ "destConfig": {
+ "defaultConfig": [
+ "projectId",
+ "brandId",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "enableGenericPageTitle", "oneTrustCookieCategories"],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"]
+ },
+ "secretKeys": ["projectId"]
+ }
+}
diff --git a/src/configurations/destinations/qualtrics/metadata.json b/src/configurations/destinations/qualtrics/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/qualtrics/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/qualtrics/schema.json b/src/configurations/destinations/qualtrics/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/qualtrics/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/qualtrics/ui_config.json b/src/configurations/destinations/qualtrics/ui-config.json
similarity index 100%
rename from data/destinations/qualtrics/ui_config.json
rename to src/configurations/destinations/qualtrics/ui-config.json
diff --git a/src/configurations/destinations/quantummetric/db-config.json b/src/configurations/destinations/quantummetric/db-config.json
new file mode 100644
index 000000000..c8768ba53
--- /dev/null
+++ b/src/configurations/destinations/quantummetric/db-config.json
@@ -0,0 +1,23 @@
+{
+ "name": "QUANTUMMETRIC",
+ "displayName": "Quantum Metric",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "siteID",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": ["siteID", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption"],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/quantummetric/metadata.json b/src/configurations/destinations/quantummetric/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/quantummetric/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/quantummetric/schema.json b/src/configurations/destinations/quantummetric/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/quantummetric/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/quantummetric/ui_config.json b/src/configurations/destinations/quantummetric/ui-config.json
similarity index 100%
rename from data/destinations/quantummetric/ui_config.json
rename to src/configurations/destinations/quantummetric/ui-config.json
diff --git a/src/configurations/destinations/quora_pixel/db-config.json b/src/configurations/destinations/quora_pixel/db-config.json
new file mode 100644
index 000000000..0527f99f8
--- /dev/null
+++ b/src/configurations/destinations/quora_pixel/db-config.json
@@ -0,0 +1,31 @@
+{
+ "name": "QUORA_PIXEL",
+ "displayName": "Quora Pixel",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "pixelId",
+ "eventsToQPEvents",
+ "whitelistedEvents",
+ "blacklistedEvents",
+ "eventFilteringOption",
+ "oneTrustCookieCategories"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "pixelId",
+ "eventsToQPEvents",
+ "whitelistedEvents",
+ "blacklistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["pixelId"]
+ }
+}
diff --git a/src/configurations/destinations/quora_pixel/metadata.json b/src/configurations/destinations/quora_pixel/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/quora_pixel/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/quora_pixel/schema.json b/src/configurations/destinations/quora_pixel/schema.json
new file mode 100644
index 000000000..b74b4970e
--- /dev/null
+++ b/src/configurations/destinations/quora_pixel/schema.json
@@ -0,0 +1,82 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["pixelId"],
+ "properties": {
+ "pixelId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "eventsToQPEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/quora_pixel/ui_config.json b/src/configurations/destinations/quora_pixel/ui-config.json
similarity index 100%
rename from data/destinations/quora_pixel/ui_config.json
rename to src/configurations/destinations/quora_pixel/ui-config.json
diff --git a/src/configurations/destinations/reddit_pixel/db-config.json b/src/configurations/destinations/reddit_pixel/db-config.json
new file mode 100644
index 000000000..807e64ac8
--- /dev/null
+++ b/src/configurations/destinations/reddit_pixel/db-config.json
@@ -0,0 +1,30 @@
+{
+ "name": "REDDIT_PIXEL",
+ "displayName": "Reddit Pixel",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "advertiserId",
+ "eventMappingFromConfig",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "advertiserId",
+ "eventMappingFromConfig",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["advertiserId"]
+ }
+}
diff --git a/src/configurations/destinations/reddit_pixel/metadata.json b/src/configurations/destinations/reddit_pixel/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/reddit_pixel/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/reddit_pixel/schema.json b/src/configurations/destinations/reddit_pixel/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/reddit_pixel/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/reddit_pixel/ui_config.json b/src/configurations/destinations/reddit_pixel/ui-config.json
similarity index 100%
rename from data/destinations/reddit_pixel/ui_config.json
rename to src/configurations/destinations/reddit_pixel/ui-config.json
diff --git a/src/configurations/destinations/redis/db-config.json b/src/configurations/destinations/redis/db-config.json
new file mode 100644
index 000000000..ee66ede2e
--- /dev/null
+++ b/src/configurations/destinations/redis/db-config.json
@@ -0,0 +1,37 @@
+{
+ "name": "REDIS",
+ "displayName": "Redis",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "secretKeys": ["password", "caCertificate"],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "address",
+ "database",
+ "password",
+ "prefix",
+ "secure",
+ "skipVerify",
+ "caCertificate",
+ "clusterMode"
+ ]
+ }
+ }
+}
diff --git a/src/configurations/destinations/redis/metadata.json b/src/configurations/destinations/redis/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/redis/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/redis/schema.json b/src/configurations/destinations/redis/schema.json
new file mode 100644
index 000000000..e53c8f70c
--- /dev/null
+++ b/src/configurations/destinations/redis/schema.json
@@ -0,0 +1,39 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["address"],
+ "properties": {
+ "address": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
+ },
+ "clusterMode": {
+ "type": "boolean"
+ },
+ "secure": {
+ "type": "boolean"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "database": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "caCertificate": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*"
+ },
+ "skipVerify": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/redis/ui-config.json b/src/configurations/destinations/redis/ui-config.json
new file mode 100644
index 000000000..4a2f362af
--- /dev/null
+++ b/src/configurations/destinations/redis/ui-config.json
@@ -0,0 +1,85 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Address",
+ "value": "address",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid Address",
+ "required": true,
+ "placeholder": "e.g: localhost:6379"
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "database",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Database",
+ "required": false,
+ "placeholder": "",
+ "preRequisiteField": {
+ "name": "clusterMode",
+ "selectedValue": false
+ }
+ },
+ {
+ "type": "checkbox",
+ "label": "Cluster Mode",
+ "value": "clusterMode",
+ "default": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Secure",
+ "value": "secure",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": {
+ "name": "secure",
+ "selectedValue": true
+ },
+ "label": "Skip verify",
+ "value": "skipVerify",
+ "default": false,
+ "footerNote": "if you are using self signed certificates make this field true"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": {
+ "name": "secure",
+ "selectedValue": true
+ },
+ "label": "CA certificate",
+ "value": "caCertificate",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "CA Certificate",
+ "footerNote": "Can be skipped for CA's that can be verified with any client (eg. Elasticache)"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": ""
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/refiner/db_config.json b/src/configurations/destinations/refiner/db-config.json
similarity index 100%
rename from data/destinations/refiner/db_config.json
rename to src/configurations/destinations/refiner/db-config.json
diff --git a/src/configurations/destinations/refiner/metadata.json b/src/configurations/destinations/refiner/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/refiner/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/refiner/schema.json b/src/configurations/destinations/refiner/schema.json
similarity index 100%
rename from data/destinations/refiner/schema.json
rename to src/configurations/destinations/refiner/schema.json
diff --git a/data/destinations/refiner/ui_config.json b/src/configurations/destinations/refiner/ui-config.json
similarity index 100%
rename from data/destinations/refiner/ui_config.json
rename to src/configurations/destinations/refiner/ui-config.json
diff --git a/src/configurations/destinations/revenue_cat/db-config.json b/src/configurations/destinations/revenue_cat/db-config.json
new file mode 100644
index 000000000..36d9b0b3e
--- /dev/null
+++ b/src/configurations/destinations/revenue_cat/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "REVENUE_CAT",
+ "displayName": "Revenue Cat",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "web",
+ "cloud",
+ "mobile",
+ "android",
+ "ios",
+ "unity",
+ "amp",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "xPlatform"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/revenue_cat/metadata.json b/src/configurations/destinations/revenue_cat/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/revenue_cat/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/revenue_cat/schema.json b/src/configurations/destinations/revenue_cat/schema.json
new file mode 100644
index 000000000..62d31a40f
--- /dev/null
+++ b/src/configurations/destinations/revenue_cat/schema.json
@@ -0,0 +1,17 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "xPlatform": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(ios|android|amazon|macos|stripe|uikitformac)$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/revenue_cat/ui-config.json b/src/configurations/destinations/revenue_cat/ui-config.json
new file mode 100644
index 000000000..cf4e16c1c
--- /dev/null
+++ b/src/configurations/destinations/revenue_cat/ui-config.json
@@ -0,0 +1,54 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Public API Key",
+ "value": "apiKey",
+ "regex": "^(.{1,100})$",
+ "required": true,
+ "placeholder": "e.g. b4a29aba5e75d99c8a18acd920ec1e2e",
+ "secret": true,
+ "footerNote": "Your Public API Key"
+ },
+ {
+ "type": "singleSelect",
+ "label": "X-Platform",
+ "value": "xPlatform",
+ "options": [
+ {
+ "name": "iOS",
+ "value": "ios"
+ },
+ {
+ "name": "Android",
+ "value": "android"
+ },
+ {
+ "name": "Amazon",
+ "value": "amazon"
+ },
+ {
+ "name": "macOS",
+ "value": "macos"
+ },
+ {
+ "name": "Stripe",
+ "value": "stripe"
+ },
+ {
+ "name": "UI kit for mac",
+ "value": "uikitformac"
+ }
+ ],
+ "defaultOption": {
+ "name": "Stripe",
+ "value": "stripe"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/rockerbox/db-config.json b/src/configurations/destinations/rockerbox/db-config.json
new file mode 100644
index 000000000..52ac4b212
--- /dev/null
+++ b/src/configurations/destinations/rockerbox/db-config.json
@@ -0,0 +1,52 @@
+{
+ "name": "ROCKERBOX",
+ "displayName": "Rockerbox",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "advertiserId",
+ "eventsMap",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "oneTrustCookieCategories",
+ "useNativeSDKToSend",
+ "clientAuthId",
+ "customDomain",
+ "enableCookieSync"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "amp",
+ "android",
+ "cordova",
+ "cloud",
+ "flutter",
+ "ios",
+ "reactnative",
+ "unity",
+ "warehouse",
+ "web"
+ ],
+ "supportedMessageTypes": ["identify", "track", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "advertiserId",
+ "eventsMap",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": [
+ "useNativeSDK",
+ "useNativeSDKToSend",
+ "clientAuthId",
+ "oneTrustCookieCategories",
+ "customDomain",
+ "enableCookieSync"
+ ]
+ }
+ }
+}
diff --git a/src/configurations/destinations/rockerbox/metadata.json b/src/configurations/destinations/rockerbox/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/rockerbox/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/rockerbox/schema.json b/src/configurations/destinations/rockerbox/schema.json
new file mode 100644
index 000000000..c7db566a0
--- /dev/null
+++ b/src/configurations/destinations/rockerbox/schema.json
@@ -0,0 +1,114 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["advertiserId"],
+ "properties": {
+ "advertiserId": {
+ "type": "string"
+ },
+ "clientAuthId": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string"
+ }
+ }
+ },
+ "customDomain": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "^(?!.*\\.ngrok\\.io).*$"
+ }
+ }
+ },
+ "enableCookieSync": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "eventsMap": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "useNativeSDKToSend": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/rockerbox/ui_config.json b/src/configurations/destinations/rockerbox/ui-config.json
similarity index 100%
rename from data/destinations/rockerbox/ui_config.json
rename to src/configurations/destinations/rockerbox/ui-config.json
diff --git a/src/configurations/destinations/rollbar/db-config.json b/src/configurations/destinations/rollbar/db-config.json
new file mode 100644
index 000000000..e8d9c578e
--- /dev/null
+++ b/src/configurations/destinations/rollbar/db-config.json
@@ -0,0 +1,40 @@
+{
+ "name": "ROLLBAR",
+ "displayName": "rollbar",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accessToken",
+ "captureUncaughtException",
+ "captureUnhandledRejections",
+ "guessUncaughtFrames",
+ "codeVersion",
+ "environment",
+ "ignoredMessages",
+ "sourceMapEnabled",
+ "blacklistedEvents",
+ "whitelistedEvents"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "accessToken",
+ "captureUncaughtException",
+ "captureUnhandledRejections",
+ "guessUncaughtFrames",
+ "codeVersion",
+ "environment",
+ "ignoredMessages",
+ "sourceMapEnabled",
+ "blacklistedEvents",
+ "whitelistedEvents"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["accessToken"]
+ }
+}
diff --git a/src/configurations/destinations/rollbar/metadata.json b/src/configurations/destinations/rollbar/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/rollbar/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/rollbar/schema.json b/src/configurations/destinations/rollbar/schema.json
new file mode 100644
index 000000000..60ccbf260
--- /dev/null
+++ b/src/configurations/destinations/rollbar/schema.json
@@ -0,0 +1,94 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["accessToken"],
+ "type": "object",
+ "properties": {
+ "accessToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "captureUncaughtException": {
+ "type": "boolean"
+ },
+ "captureUnhandledRejections": {
+ "type": "boolean"
+ },
+ "guessUncaughtFrames": {
+ "type": "boolean"
+ },
+ "codeVersion": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "environment": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "ignoredMessages": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "sourceMapEnabled": {
+ "type": "boolean"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/rollbar/ui_config.json b/src/configurations/destinations/rollbar/ui-config.json
similarity index 100%
rename from data/destinations/rollbar/ui_config.json
rename to src/configurations/destinations/rollbar/ui-config.json
diff --git a/data/destinations/rs/db_config.json b/src/configurations/destinations/rs/db-config.json
similarity index 100%
rename from data/destinations/rs/db_config.json
rename to src/configurations/destinations/rs/db-config.json
diff --git a/src/configurations/destinations/rs/metadata.json b/src/configurations/destinations/rs/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/rs/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/rs/schema.json b/src/configurations/destinations/rs/schema.json
similarity index 100%
rename from data/destinations/rs/schema.json
rename to src/configurations/destinations/rs/schema.json
diff --git a/data/destinations/rs/ui_config.json b/src/configurations/destinations/rs/ui-config.json
similarity index 100%
rename from data/destinations/rs/ui_config.json
rename to src/configurations/destinations/rs/ui-config.json
diff --git a/src/configurations/destinations/s3/db-config.json b/src/configurations/destinations/s3/db-config.json
new file mode 100644
index 000000000..bf4dc92b8
--- /dev/null
+++ b/src/configurations/destinations/s3/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "S3",
+ "displayName": "Amazon S3",
+ "config": {
+ "transformAt": "none",
+ "transformAtV1": "none",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "bucketName",
+ "prefix",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "enableSSE"
+ ]
+ },
+ "secretKeys": ["accessKeyID", "accessKey"]
+ }
+}
diff --git a/src/configurations/destinations/s3/metadata.json b/src/configurations/destinations/s3/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/s3/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/s3/schema.json b/src/configurations/destinations/s3/schema.json
new file mode 100644
index 000000000..09be03e4f
--- /dev/null
+++ b/src/configurations/destinations/s3/schema.json
@@ -0,0 +1,30 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["bucketName"],
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "enableSSE": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/s3/ui-config.json b/src/configurations/destinations/s3/ui-config.json
new file mode 100644
index 000000000..57f0a94a0
--- /dev/null
+++ b/src/configurations/destinations/s3/ui-config.json
@@ -0,0 +1,84 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "S3 Bucket Name",
+ "value": "bucketName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid S3 Bucket Name",
+ "required": true,
+ "placeholder": "e.g: s3-event-logs"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder"
+ },
+ {
+ "type": "checkbox",
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ },
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": false,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ },
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Access Key ID",
+ "required": false,
+ "placeholder": "e.g: access-key-id",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ },
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Secret Access Key",
+ "required": false,
+ "placeholder": "e.g: secret-access-key",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable Server Side Encryption?",
+ "value": "enableSSE",
+ "default": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/s3_datalake/db-config.json b/src/configurations/destinations/s3_datalake/db-config.json
new file mode 100644
index 000000000..d614949f4
--- /dev/null
+++ b/src/configurations/destinations/s3_datalake/db-config.json
@@ -0,0 +1,42 @@
+{
+ "name": "S3_DATALAKE",
+ "displayName": "S3 Datalake",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "warehouse",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "useGlue",
+ "region",
+ "bucketName",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "prefix",
+ "namespace",
+ "syncFrequency",
+ "syncStartAt",
+ "excludeWindow"
+ ]
+ },
+ "secretKeys": ["password", "accessKeyID", "accessKey"]
+ }
+}
diff --git a/src/configurations/destinations/s3_datalake/metadata.json b/src/configurations/destinations/s3_datalake/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/s3_datalake/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/s3_datalake/schema.json b/src/configurations/destinations/s3_datalake/schema.json
new file mode 100644
index 000000000..cd37bb0ec
--- /dev/null
+++ b/src/configurations/destinations/s3_datalake/schema.json
@@ -0,0 +1,71 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": ["bucketName", "useGlue", "syncFrequency"],
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "useGlue": {
+ "type": "boolean"
+ },
+ "prefix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "enableSSE": {
+ "type": "boolean"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "useGlue": {
+ "const": true
+ }
+ },
+ "required": ["useGlue"]
+ },
+ "then": {
+ "properties": {
+ "region": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ }
+ },
+ "required": ["region"]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/s3_datalake/ui-config.json b/src/configurations/destinations/s3_datalake/ui-config.json
new file mode 100644
index 000000000..522f02676
--- /dev/null
+++ b/src/configurations/destinations/s3_datalake/ui-config.json
@@ -0,0 +1,162 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "S3 Storage Bucket Name",
+ "labelNote": "S3 Bucket to store your event data",
+ "value": "bucketName",
+ "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "required": true,
+ "footerNote": "Please make sure the bucket exists in your S3"
+ },
+ {
+ "type": "checkbox",
+ "label": "Register schema on AWS Glue",
+ "value": "useGlue",
+ "default": false,
+ "footerNote": "We register the schema on AWS Glue's Data Catalog if this option is enabled"
+ },
+ {
+ "type": "textInput",
+ "label": "AWS Glue Region",
+ "labelNote": "Your AWS Glue region.Ex-For N.Virginia, this field's value would be 'us-east-1'",
+ "value": "region",
+ "regex": ".*",
+ "required": true,
+ "preRequisiteField": {
+ "name": "useGlue",
+ "selectedValue": true
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "S3 Prefix",
+ "labelNote": "If configured, all data pushed by rudderstack will be at s3:////",
+ "value": "prefix",
+ "regex": ".*",
+ "required": false,
+ "placeholder": ""
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "value": "namespace",
+ "labelNote": "Defaults to source name.",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "required": false,
+ "footerNote": "All data for the destination would be pushed to s3:////rudder-datalake/.If glue is enabled, all table definitions are created in a database with name set to namespace."
+ },
+ {
+ "type": "checkbox",
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ }
+ ],
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g: access-key-id",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "e.g: secret-access-key",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable Server Side Encryption For S3?",
+ "value": "enableSSE",
+ "default": false
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/salesforce/db-config.json b/src/configurations/destinations/salesforce/db-config.json
new file mode 100644
index 000000000..b55e6686f
--- /dev/null
+++ b/src/configurations/destinations/salesforce/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "SALESFORCE",
+ "displayName": "Salesforce",
+ "config": {
+ "supportsVisualMapper": true,
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "userName",
+ "password",
+ "initialAccessToken",
+ "mapProperties",
+ "sandbox",
+ "useContactId"
+ ]
+ },
+ "secretKeys": ["password", "initialAccessToken"]
+ }
+}
diff --git a/src/configurations/destinations/salesforce/metadata.json b/src/configurations/destinations/salesforce/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/salesforce/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/salesforce/schema.json b/src/configurations/destinations/salesforce/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/salesforce/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/salesforce/ui-config.json b/src/configurations/destinations/salesforce/ui-config.json
new file mode 100644
index 000000000..77c2e53c5
--- /dev/null
+++ b/src/configurations/destinations/salesforce/ui-config.json
@@ -0,0 +1,61 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "User Name",
+ "value": "userName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid User Name",
+ "required": true,
+ "placeholder": "e.g. user_name"
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. password",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Security Token",
+ "value": "initialAccessToken",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Security Token",
+ "required": true,
+ "placeholder": "e.g. ISnPS2LcOtn9bHf6Id6vG0jgh",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Other Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Map Rudder Properties to Salesforce Properties",
+ "value": "mapProperties",
+ "default": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Sandbox mode",
+ "value": "sandbox",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Use contactId for converted leads",
+ "value": "useContactId",
+ "default": false,
+ "footerNote": "It is suggested to enable this option when both lead and contact field mappings are same."
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/satismeter/db_config.json b/src/configurations/destinations/satismeter/db-config.json
similarity index 100%
rename from data/destinations/satismeter/db_config.json
rename to src/configurations/destinations/satismeter/db-config.json
diff --git a/src/configurations/destinations/satismeter/metadata.json b/src/configurations/destinations/satismeter/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/satismeter/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/satismeter/schema.json b/src/configurations/destinations/satismeter/schema.json
new file mode 100644
index 000000000..1876b819a
--- /dev/null
+++ b/src/configurations/destinations/satismeter/schema.json
@@ -0,0 +1,91 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["writeKey"],
+ "properties": {
+ "writeKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "identifyAnonymousUsers": {
+ "type": "boolean"
+ },
+ "recordSatismeterEvents": {
+ "type": "boolean"
+ },
+ "updateEventNames": {
+ "type": "boolean"
+ },
+ "eventsToStandard": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/satismeter/ui_config.json b/src/configurations/destinations/satismeter/ui-config.json
similarity index 100%
rename from data/destinations/satismeter/ui_config.json
rename to src/configurations/destinations/satismeter/ui-config.json
diff --git a/src/configurations/destinations/segment/db-config.json b/src/configurations/destinations/segment/db-config.json
new file mode 100644
index 000000000..140a3b130
--- /dev/null
+++ b/src/configurations/destinations/segment/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "SEGMENT",
+ "displayName": "Segment",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["writeKey"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/segment/metadata.json b/src/configurations/destinations/segment/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/segment/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/segment/schema.json b/src/configurations/destinations/segment/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/segment/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/segment/ui-config.json b/src/configurations/destinations/segment/ui-config.json
new file mode 100644
index 000000000..11a28881b
--- /dev/null
+++ b/src/configurations/destinations/segment/ui-config.json
@@ -0,0 +1,18 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Segment Write Key",
+ "value": "writeKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Segment Write Key",
+ "required": true,
+ "placeholder": "e.g: bSjsdGYsOo9sjw23Shj"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/sendgrid/db_config.json b/src/configurations/destinations/sendgrid/db-config.json
similarity index 100%
rename from data/destinations/sendgrid/db_config.json
rename to src/configurations/destinations/sendgrid/db-config.json
diff --git a/src/configurations/destinations/sendgrid/metadata.json b/src/configurations/destinations/sendgrid/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/sendgrid/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/sendgrid/schema.json b/src/configurations/destinations/sendgrid/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/sendgrid/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/sendgrid/ui_config.json b/src/configurations/destinations/sendgrid/ui-config.json
similarity index 100%
rename from data/destinations/sendgrid/ui_config.json
rename to src/configurations/destinations/sendgrid/ui-config.json
diff --git a/data/destinations/sendinblue/db_config.json b/src/configurations/destinations/sendinblue/db-config.json
similarity index 100%
rename from data/destinations/sendinblue/db_config.json
rename to src/configurations/destinations/sendinblue/db-config.json
diff --git a/src/configurations/destinations/sendinblue/metadata.json b/src/configurations/destinations/sendinblue/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/sendinblue/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/sendinblue/schema.json b/src/configurations/destinations/sendinblue/schema.json
new file mode 100644
index 000000000..7012e3565
--- /dev/null
+++ b/src/configurations/destinations/sendinblue/schema.json
@@ -0,0 +1,96 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey", "clientKey", "redirectionUrl"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "clientKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "doi": { "type": "boolean" },
+ "templateId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ },
+ "redirectionUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"
+ },
+ "keyToContactAttributeMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "sendTraitsInTrack": { "type": "boolean" },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/sendinblue/ui_config.json b/src/configurations/destinations/sendinblue/ui-config.json
similarity index 100%
rename from data/destinations/sendinblue/ui_config.json
rename to src/configurations/destinations/sendinblue/ui-config.json
diff --git a/src/configurations/destinations/sentry/db-config.json b/src/configurations/destinations/sentry/db-config.json
new file mode 100644
index 000000000..26c35719a
--- /dev/null
+++ b/src/configurations/destinations/sentry/db-config.json
@@ -0,0 +1,49 @@
+{
+ "name": "SENTRY",
+ "displayName": "Sentry",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "dsn",
+ "environment",
+ "customVersionProperty",
+ "release",
+ "serverName",
+ "logger",
+ "ignoreErrors",
+ "includePaths",
+ "allowUrls",
+ "denyUrls",
+ "debugMode",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify"],
+ "destConfig": {
+ "defaultConfig": [
+ "dsn",
+ "environment",
+ "customVersionProperty",
+ "release",
+ "serverName",
+ "logger",
+ "ignoreErrors",
+ "includePaths",
+ "allowUrls",
+ "denyUrls",
+ "debugMode",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["dsn"]
+ }
+}
diff --git a/src/configurations/destinations/sentry/metadata.json b/src/configurations/destinations/sentry/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/sentry/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/sentry/schema.json b/src/configurations/destinations/sentry/schema.json
new file mode 100644
index 000000000..06cf96be3
--- /dev/null
+++ b/src/configurations/destinations/sentry/schema.json
@@ -0,0 +1,130 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["dsn"],
+ "properties": {
+ "dsn": {
+ "type": "string"
+ },
+ "environment": {
+ "type": "string"
+ },
+ "customVersionProperty": {
+ "type": "string"
+ },
+ "release": {
+ "type": "string"
+ },
+ "serverName": {
+ "type": "string"
+ },
+ "logger": {
+ "type": "string"
+ },
+ "debugMode": {
+ "type": "boolean"
+ },
+ "ignoreErrors": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "ignoreErrors": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "includePaths": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "includePaths": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "allowUrls": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "allowUrls": {
+ "type": "string",
+ "pattern": "^(?!.*\\.ngrok\\.io).*$"
+ }
+ }
+ }
+ },
+ "denyUrls": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "denyUrls": {
+ "type": "string",
+ "pattern": "^(?!.*\\.ngrok\\.io).*$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/sentry/ui_config.json b/src/configurations/destinations/sentry/ui-config.json
similarity index 100%
rename from data/destinations/sentry/ui_config.json
rename to src/configurations/destinations/sentry/ui-config.json
diff --git a/src/configurations/destinations/serenytics/db-config.json b/src/configurations/destinations/serenytics/db-config.json
new file mode 100644
index 000000000..8c4845c3c
--- /dev/null
+++ b/src/configurations/destinations/serenytics/db-config.json
@@ -0,0 +1,35 @@
+{
+ "name": "SERENYTICS",
+ "displayName": "Serenytics",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track", "group", "page", "screen", "alias"],
+ "destConfig": {
+ "defaultConfig": [
+ "storageUrlIdentify",
+ "storageUrlTrack",
+ "eventToStorageUrlMap",
+ "storageUrlGroup",
+ "storageUrlAlias",
+ "storageUrlPage",
+ "storageUrlScreen"
+ ]
+ }
+ }
+}
diff --git a/src/configurations/destinations/serenytics/metadata.json b/src/configurations/destinations/serenytics/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/serenytics/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/serenytics/schema.json b/src/configurations/destinations/serenytics/schema.json
new file mode 100644
index 000000000..7a0117fbc
--- /dev/null
+++ b/src/configurations/destinations/serenytics/schema.json
@@ -0,0 +1,48 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "properties": {
+ "storageUrlIdentify": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
+ },
+ "storageUrlTrack": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
+ },
+ "storageUrlGroup": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
+ },
+ "storageUrlAlias": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
+ },
+ "storageUrlPage": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
+ },
+ "storageUrlScreen": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$"
+ },
+ "eventToStorageUrlMap": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,200})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,200})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/serenytics/ui-config.json b/src/configurations/destinations/serenytics/ui-config.json
new file mode 100644
index 000000000..15061955b
--- /dev/null
+++ b/src/configurations/destinations/serenytics/ui-config.json
@@ -0,0 +1,69 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Data Source Storage Url for Identify",
+ "value": "storageUrlIdentify",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
+ "required": false,
+ "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
+ },
+ {
+ "type": "textInput",
+ "label": "Data Source Storage Url for Track",
+ "value": "storageUrlTrack",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
+ "required": false,
+ "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Event Specific Storage Url",
+ "value": "eventToStorageUrlMap",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. Order Completed",
+ "placeholderRight": "e.g https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917",
+ "labelLeft": "Event Name",
+ "labelRight": "Data Source Storage Url for Event"
+ },
+ {
+ "type": "textInput",
+ "label": "Data Source Storage Url for Group",
+ "value": "storageUrlGroup",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
+ "required": false,
+ "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
+ },
+ {
+ "type": "textInput",
+ "label": "Data Source Storage Url for Alias",
+ "value": "storageUrlAlias",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
+ "required": false,
+ "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
+ },
+ {
+ "type": "textInput",
+ "label": "Data Source Storage Url for Page",
+ "value": "storageUrlPage",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
+ "required": false,
+ "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
+ },
+ {
+ "type": "textInput",
+ "label": "Data Source Storage Url for Screen",
+ "value": "storageUrlScreen",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$",
+ "required": false,
+ "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/sfmc/db-config.json b/src/configurations/destinations/sfmc/db-config.json
new file mode 100644
index 000000000..d166fc546
--- /dev/null
+++ b/src/configurations/destinations/sfmc/db-config.json
@@ -0,0 +1,37 @@
+{
+ "name": "SFMC",
+ "displayName": "Salesforce Marketing Cloud",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "clientId",
+ "clientSecret",
+ "subDomain",
+ "createOrUpdateContacts",
+ "externalKey",
+ "eventToExternalKey",
+ "eventToPrimaryKey",
+ "eventToUUID"
+ ]
+ },
+ "secretKeys": ["clientId", "clientSecret", "subDomain"]
+ }
+}
diff --git a/src/configurations/destinations/sfmc/metadata.json b/src/configurations/destinations/sfmc/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/sfmc/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/sfmc/schema.json b/src/configurations/destinations/sfmc/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/sfmc/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/sfmc/ui-config.json b/src/configurations/destinations/sfmc/ui-config.json
new file mode 100644
index 000000000..2f89fa4ea
--- /dev/null
+++ b/src/configurations/destinations/sfmc/ui-config.json
@@ -0,0 +1,101 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Client Id",
+ "value": "clientId",
+ "required": true,
+ "placeholder": "e.g. ow081701234iblovt1z0j8hm",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Client Secret",
+ "value": "clientSecret",
+ "required": true,
+ "placeholder": "e.g. Sm7Yoqpx1jpn1234Juvl61Ag",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Subdomain",
+ "value": "subDomain",
+ "required": true,
+ "placeholder": "e.g. mcxt4zx46412341jd9rp300hdc8y",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Identify Call Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Do Not Create or Update Contacts",
+ "value": "createOrUpdateContacts",
+ "default": false,
+ "footerNote": "To disable creating or updating contacts during an identify call, set this option to true."
+ },
+ {
+ "type": "textInput",
+ "label": "Identify Data External Key",
+ "value": "externalKey",
+ "required": false,
+ "placeholder": "e.g. mcxt4zx46412341jd9rp300hdc8y",
+ "footerNote": "Use this setting if you would like Rudder identify events to create or update Data Extensions in SFMC. The External Key of the Salesforce Marketing Cloud Data Extension to which you'd like to send Identify data. You can find this in the SFMC interface by navigating to Data & Analytics > Contact Builder > Data Extensions; the extension's name will appear in the External Key column."
+ }
+ ]
+ },
+ {
+ "title": "Track Call Settings",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map events to external key",
+ "labelLeft": "Event Name",
+ "labelRight": "External Key",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Clicked",
+ "placeholderRight": "eg: 69364906-1111-1111-1111-7D9CD87F16EC",
+ "value": "eventToExternalKey"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map events to primary key",
+ "labelLeft": "Event Name",
+ "labelRight": "Primary Key",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Clicked",
+ "placeholderRight": "eg: Contact Key",
+ "value": "eventToPrimaryKey",
+ "footerNote": "The target Data Extension's Primary Key. If a value is not provided, defaults to Contact Key. You can add multiple primary keys by separating them with commas. The primary key names should be same as that you have set in SFMC data extensions."
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "eventToUUID",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "event",
+ "label": "Event Name",
+ "placeholder": "e.g. Product Added",
+ "required": false
+ },
+ {
+ "type": "checkbox",
+ "value": "uuid",
+ "label": "UUID",
+ "required": false,
+ "footerNote": "If this is checked then we will generate a UUID and pass it through to SMC as the value for Primary Key for this event called 'Uuid'. This will override the above Primary Key field."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/shynet/db-config.json b/src/configurations/destinations/shynet/db-config.json
new file mode 100644
index 000000000..53e7567d5
--- /dev/null
+++ b/src/configurations/destinations/shynet/db-config.json
@@ -0,0 +1,43 @@
+{
+ "name": "SHYNET",
+ "displayName": "Shynet",
+ "config": {
+ "supportsVisualMapper": true,
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "heartBeatFrequencyInMs",
+ "shynetServiceUrl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["page"],
+ "destConfig": {
+ "defaultConfig": [
+ "heartBeatFrequencyInMs",
+ "shynetServiceUrl",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/shynet/metadata.json b/src/configurations/destinations/shynet/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/shynet/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/shynet/schema.json b/src/configurations/destinations/shynet/schema.json
new file mode 100644
index 000000000..63b32561a
--- /dev/null
+++ b/src/configurations/destinations/shynet/schema.json
@@ -0,0 +1,70 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["shynetServiceUrl"],
+ "type": "object",
+ "properties": {
+ "heartBeatFrequencyInMs": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,10})$"
+ },
+ "shynetServiceUrl": {
+ "type": "string",
+ "pattern": "^(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$"
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,300})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/shynet/ui_config.json b/src/configurations/destinations/shynet/ui-config.json
similarity index 100%
rename from data/destinations/shynet/ui_config.json
rename to src/configurations/destinations/shynet/ui-config.json
diff --git a/src/configurations/destinations/signl4/db-config.json b/src/configurations/destinations/signl4/db-config.json
new file mode 100644
index 000000000..c8ae3763f
--- /dev/null
+++ b/src/configurations/destinations/signl4/db-config.json
@@ -0,0 +1,42 @@
+{
+ "name": "SIGNL4",
+ "displayName": "SIGNL4",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "s4ServiceValue",
+ "s4ServiceProperty",
+ "s4LocationValue",
+ "s4LocationProperty",
+ "s4AlertingScenarioValue",
+ "s4AlertingScenarioProperty",
+ "s4ExternalIDValue",
+ "s4ExternalIDProperty",
+ "s4StatusValue",
+ "s4StatusProperty",
+ "s4Filter",
+ "eventToTitleMapping"
+ ]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/signl4/metadata.json b/src/configurations/destinations/signl4/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/signl4/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/signl4/schema.json b/src/configurations/destinations/signl4/schema.json
new file mode 100644
index 000000000..29d12a215
--- /dev/null
+++ b/src/configurations/destinations/signl4/schema.json
@@ -0,0 +1,72 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "s4ServiceValue": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4ServiceProperty": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4LocationValue": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4LocationProperty": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4AlertingScenarioValue": {
+ "type": "string",
+ "pattern": "^(single_ack|multi_ack|emergency)$"
+ },
+ "s4AlertingScenarioProperty": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4ExternalIDValue": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4ExternalIDProperty": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4StatusValue": {
+ "type": "string",
+ "pattern": "^(new|acknowledged|resolved)$"
+ },
+ "s4StatusProperty": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "s4Filter": {
+ "type": "boolean"
+ },
+ "columnToPropertyMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/signl4/ui-config.json b/src/configurations/destinations/signl4/ui-config.json
new file mode 100644
index 000000000..686b55ff0
--- /dev/null
+++ b/src/configurations/destinations/signl4/ui-config.json
@@ -0,0 +1,205 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{1,300})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g. gi11aat8xy",
+ "secret": true,
+ "footerNote": "Your SIGNL4 team secret"
+ }
+ ]
+ },
+ {
+ "title": "X-S4-Service",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Default Value",
+ "value": "s4ServiceValue",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid X-S4-Service Value",
+ "required": false,
+ "placeholder": "e.g. Security",
+ "secret": false
+ },
+ {
+ "type": "textInput",
+ "label": "RudderStack property name",
+ "value": "s4ServiceProperty",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid property name",
+ "required": false,
+ "placeholder": "e.g. service",
+ "secret": false,
+ "footerNote": "Assigns the Signl to the service/system category with the specified name"
+ }
+ ]
+ },
+ {
+ "title": "X-S4-Location",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Default Value",
+ "value": "s4LocationValue",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid X-S4-Location Value",
+ "required": false,
+ "placeholder": "e.g. 40.6413111,-73.7781391",
+ "secret": false
+ },
+ {
+ "type": "textInput",
+ "label": "RudderStack property name",
+ "value": "s4LocationProperty",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid property name",
+ "required": false,
+ "placeholder": "e.g. location",
+ "footerNote": "Transmit location information ('latitude, longitude') with your event"
+ }
+ ]
+ },
+ {
+ "title": "X-S4-AlertingScenario",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Default Value",
+ "value": "s4AlertingScenarioValue",
+ "required": false,
+ "options": [
+ {
+ "name": "single_ack",
+ "value": "single_ack"
+ },
+ {
+ "name": "multi_ack",
+ "value": "multi_ack"
+ },
+ {
+ "name": "emergency",
+ "value": "emergency"
+ }
+ ],
+ "defaultOption": {
+ "name": "single_ack",
+ "value": "single_ack"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "RudderStack property name",
+ "value": "s4AlertingScenarioProperty",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid property name",
+ "required": false,
+ "placeholder": "e.g. alertingScenario",
+ "secret": false,
+ "footerNote": "Allows to control how SIGNL4 notifies the team"
+ }
+ ]
+ },
+ {
+ "title": "X-S4-ExternalID",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Default Value",
+ "value": "s4ExternalIDValue",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid X-S4-ExternalID",
+ "required": false,
+ "placeholder": "e.g. INC091210",
+ "secret": false
+ },
+ {
+ "type": "textInput",
+ "label": "RudderStack property name",
+ "value": "s4ExternalIDProperty",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid property name",
+ "required": false,
+ "placeholder": "e.g. externalId",
+ "secret": false,
+ "footerNote": "If the event originates from a record in a 3rd party system, use this parameter to pass the unique ID of that record"
+ }
+ ]
+ },
+ {
+ "title": "X-S4-Status",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Default Value",
+ "value": "s4StatusValue",
+ "required": false,
+ "options": [
+ {
+ "name": "new",
+ "value": "new"
+ },
+ {
+ "name": "acknowledged",
+ "value": "acknowledged"
+ },
+ {
+ "name": "resolved",
+ "value": "resolved"
+ }
+ ],
+ "defaultOption": {
+ "name": "new",
+ "value": "new"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "RudderStack property name",
+ "value": "s4StatusProperty",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid property name",
+ "required": false,
+ "placeholder": "e.g. status",
+ "secret": false,
+ "footerNote": "Provide the value of status of the alert from the above options"
+ }
+ ]
+ },
+ {
+ "title": "X-S4-Filtering",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable to add filter",
+ "value": "s4Filter",
+ "default": false,
+ "footerNote": "Set it to true to apply event filtering for this event"
+ }
+ ]
+ },
+ {
+ "title": "Event to title mapping",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map event name with the alert title",
+ "labelLeft": "Event Name",
+ "labelRight": "Alert Title",
+ "value": "eventToTitleMapping",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Viewed",
+ "placeholderRight": "e.g: Viewed Product"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/singular/db-config.json b/src/configurations/destinations/singular/db-config.json
new file mode 100644
index 000000000..479ffc366
--- /dev/null
+++ b/src/configurations/destinations/singular/db-config.json
@@ -0,0 +1,43 @@
+{
+ "name": "SINGULAR",
+ "displayName": "Singular",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "apiSecret",
+ "sessionEventList",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "flutter",
+ "reactnative",
+ "cordova",
+ "web",
+ "amp",
+ "cloud",
+ "warehouse"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "apiSecret",
+ "sessionEventList",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "android": ["useNativeSDK"],
+ "ios": ["useNativeSDK"],
+ "reactnative": ["useNativeSDK"],
+ "cordova": ["useNativeSDK"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/singular/metadata.json b/src/configurations/destinations/singular/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/singular/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/singular/schema.json b/src/configurations/destinations/singular/schema.json
new file mode 100644
index 000000000..78fa1f7ef
--- /dev/null
+++ b/src/configurations/destinations/singular/schema.json
@@ -0,0 +1,66 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string"
+ },
+ "apiSecret": {
+ "type": "string"
+ },
+ "sessionEventList": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "android": {
+ "type": "boolean"
+ },
+ "ios": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/singular/ui-config.json b/src/configurations/destinations/singular/ui-config.json
new file mode 100644
index 000000000..9f25102b6
--- /dev/null
+++ b/src/configurations/destinations/singular/ui-config.json
@@ -0,0 +1,109 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^[a-zA-Z0-9_]*$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g: abcd_456e5678",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Secret",
+ "value": "apiSecret",
+ "regex": "^[a-zA-Z0-9]*$",
+ "regexErrorMessage": "Invalid Secret Key",
+ "required": false,
+ "placeholder": "e.g: r344c6e48c0r87y6iio567b67ad61324",
+ "secret": true
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "sessionEventList",
+ "label": "Session Event Name",
+ "footerNote": "The event name to use as a Session event",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "sessionEventName",
+ "required": false,
+ "placeholder": "e.g: Session Event Name"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Native SDK",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use device-mode to send events",
+ "value": "useNativeSDK",
+ "default": true
+ }
+ ]
+ },
+ {
+ "title": "Client-side Events Filtering",
+ "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "value": "eventFilteringOption",
+ "required": false,
+ "options": [
+ {
+ "name": "Disable",
+ "value": "disable"
+ },
+ {
+ "name": "Allowlist",
+ "value": "whitelistedEvents"
+ },
+ {
+ "name": "Denylist",
+ "value": "blacklistedEvents"
+ }
+ ],
+ "defaultOption": {
+ "name": "Disable",
+ "value": "disable"
+ }
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedEvents",
+ "label": "Allowlist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Anonymous Page Visit"
+ }
+ ]
+ },
+ {
+ "type": "dynamicCustomForm",
+ "value": "blacklistedEvents",
+ "label": "Denylist",
+ "customFields": [
+ {
+ "type": "textInput",
+ "value": "eventName",
+ "required": false,
+ "placeholder": "e.g: Credit Card Added"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/slack/db-config.json b/src/configurations/destinations/slack/db-config.json
new file mode 100644
index 000000000..7144f7b40
--- /dev/null
+++ b/src/configurations/destinations/slack/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "SLACK",
+ "displayName": "Slack",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "eventChannelSettings",
+ "identifyTemplate",
+ "eventTemplateSettings",
+ "webhookUrl",
+ "whitelistedTraitsSettings"
+ ]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/slack/metadata.json b/src/configurations/destinations/slack/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/slack/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/slack/schema.json b/src/configurations/destinations/slack/schema.json
new file mode 100644
index 000000000..97e49def8
--- /dev/null
+++ b/src/configurations/destinations/slack/schema.json
@@ -0,0 +1,65 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})"
+ },
+ "identifyTemplate": {
+ "type": "string"
+ },
+ "eventChannelSettings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventChannel": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventRegex": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "eventTemplateSettings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventTemplate": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$"
+ },
+ "eventRegex": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "whitelistedTraitsSettings": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "trait": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/slack/ui-config.json b/src/configurations/destinations/slack/ui-config.json
new file mode 100644
index 000000000..7dd401592
--- /dev/null
+++ b/src/configurations/destinations/slack/ui-config.json
@@ -0,0 +1,122 @@
+{
+ "uiConfig": [
+ {
+ "title": "Event Channels",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "eventChannelSettings",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "Event Name",
+ "value": "eventName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Event Name",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ },
+ {
+ "type": "textInput",
+ "label": "Event Channel",
+ "value": "eventChannel",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Event Channel",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ },
+ {
+ "type": "checkbox",
+ "label": "Regex Matching",
+ "value": "eventRegex",
+ "default": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Identify Template",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Identify Template",
+ "value": "identifyTemplate",
+ "regex": "^(.{0,1000})$",
+ "regexErrorMessage": "Invalid Identify Template",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ }
+ ]
+ },
+ {
+ "title": "Event Template",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "eventTemplateSettings",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "Event Name",
+ "value": "eventName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Event Name",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ },
+ {
+ "type": "textInput",
+ "label": "Event Template",
+ "value": "eventTemplate",
+ "regex": "^(.{0,1000})$",
+ "regexErrorMessage": "Invalid Event Template",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ },
+ {
+ "type": "checkbox",
+ "label": "Regex Matching",
+ "value": "eventRegex",
+ "default": false
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Incoming Webhook Url",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Webhook Url",
+ "value": "webhookUrl",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$",
+ "regexErrorMessage": "Invalid Webhook Url",
+ "required": true,
+ "placeholder": "e.g: ABCDEFG"
+ }
+ ]
+ },
+ {
+ "title": "Whitelisted Traits",
+ "fields": [
+ {
+ "type": "dynamicCustomForm",
+ "value": "whitelistedTraitsSettings",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "Trait",
+ "value": "trait",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Trait",
+ "required": false,
+ "placeholder": "e.g: ABCDEFG"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/snap_pixel/db-config.json b/src/configurations/destinations/snap_pixel/db-config.json
new file mode 100644
index 000000000..c237bec30
--- /dev/null
+++ b/src/configurations/destinations/snap_pixel/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "SNAP_PIXEL",
+ "displayName": "Snap Pixel",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "pixelId",
+ "hashMethod",
+ "eventMappingFromConfig",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption",
+ "deduplicationKey",
+ "enableDeduplication"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "pixelId",
+ "hashMethod",
+ "eventMappingFromConfig",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "deduplicationKey",
+ "enableDeduplication"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["pixelId"]
+ }
+}
diff --git a/src/configurations/destinations/snap_pixel/metadata.json b/src/configurations/destinations/snap_pixel/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/snap_pixel/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snap_pixel/schema.json b/src/configurations/destinations/snap_pixel/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/snap_pixel/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/snap_pixel/ui_config.json b/src/configurations/destinations/snap_pixel/ui-config.json
similarity index 100%
rename from data/destinations/snap_pixel/ui_config.json
rename to src/configurations/destinations/snap_pixel/ui-config.json
diff --git a/src/configurations/destinations/snapchat_conversion/db-config.json b/src/configurations/destinations/snapchat_conversion/db-config.json
new file mode 100644
index 000000000..0fbcb39f1
--- /dev/null
+++ b/src/configurations/destinations/snapchat_conversion/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "SNAPCHAT_CONVERSION",
+ "displayName": "Snapchat Conversion",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "pixelId",
+ "snapAppId",
+ "appId",
+ "rudderEventsToSnapEvents",
+ "enableDeduplication",
+ "deduplicationKey"
+ ]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/snapchat_conversion/metadata.json b/src/configurations/destinations/snapchat_conversion/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/snapchat_conversion/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snapchat_conversion/schema.json b/src/configurations/destinations/snapchat_conversion/schema.json
new file mode 100644
index 000000000..1837c8152
--- /dev/null
+++ b/src/configurations/destinations/snapchat_conversion/schema.json
@@ -0,0 +1,46 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$"
+ },
+ "pixelId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "snapAppId": {
+ "type": "string"
+ },
+ "appId": {
+ "type": "string"
+ },
+ "rudderEventsToSnapEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "enableDeduplication": {
+ "type": "boolean"
+ },
+ "deduplicationKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snapchat_conversion/ui-config.json b/src/configurations/destinations/snapchat_conversion/ui-config.json
new file mode 100644
index 000000000..4289c527f
--- /dev/null
+++ b/src/configurations/destinations/snapchat_conversion/ui-config.json
@@ -0,0 +1,215 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiKey",
+ "regex": "^(.{1,500})$",
+ "required": true,
+ "placeholder": "e.g. MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
+ "secret": true,
+ "footerNote": "Your Conversion API Token"
+ },
+ {
+ "type": "textInput",
+ "label": "Pixel ID",
+ "value": "pixelId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Pixel ID",
+ "required": false,
+ "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e",
+ "secret": true,
+ "footerNote": "Your Pixel ID"
+ },
+ {
+ "type": "textInput",
+ "label": "Snap App ID",
+ "value": "snapAppId",
+ "required": false,
+ "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e",
+ "secret": true,
+ "footerNote": "Your Snap App ID"
+ },
+ {
+ "type": "textInput",
+ "label": "App ID",
+ "value": "appId",
+ "required": false,
+ "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e",
+ "secret": true,
+ "footerNote": "Your App ID"
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "dynamicSelectForm",
+ "label": "Map your events with Snapchat Standard Events",
+ "labelLeft": "Event Name",
+ "labelRight": "Standard Event Name",
+ "value": "rudderEventsToSnapEvents",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g. Product Searched",
+ "options": [
+ {
+ "name": "Products Searched",
+ "value": "products_searched"
+ },
+ {
+ "name": "Product List Viewed",
+ "value": "product_list_viewed"
+ },
+ {
+ "name": "Promotion Viewed",
+ "value": "promotion_viewed"
+ },
+ {
+ "name": "Promotion Clicked",
+ "value": "promotion_clicked"
+ },
+ {
+ "name": "Product Viewed",
+ "value": "product_viewed"
+ },
+ {
+ "name": "Checkout Started",
+ "value": "checkout_started"
+ },
+ {
+ "name": "Payment Info Entered",
+ "value": "payment_info_entered"
+ },
+ {
+ "name": "Order Completed",
+ "value": "order_completed"
+ },
+ {
+ "name": "Product Added",
+ "value": "product_added"
+ },
+ {
+ "name": "Product Added To Wishlist",
+ "value": "product_added_to_wishlist"
+ },
+ {
+ "name": "Sign Up",
+ "value": "sign_up"
+ },
+ {
+ "name": "App Open",
+ "value": "app_open"
+ },
+ {
+ "name": "Save",
+ "value": "save"
+ },
+ {
+ "name": "Subscribe",
+ "value": "subscribe"
+ },
+ {
+ "name": "Complete Tutorial",
+ "value": "complete_tutorial"
+ },
+ {
+ "name": "Invite",
+ "value": "invite"
+ },
+ {
+ "name": "Login",
+ "value": "login"
+ },
+ {
+ "name": "Share",
+ "value": "share"
+ },
+ {
+ "name": "Reserve",
+ "value": "reserve"
+ },
+ {
+ "name": "Achievement Unlocked",
+ "value": "achievement_unlocked"
+ },
+ {
+ "name": "Spent Credits",
+ "value": "spent_credits"
+ },
+ {
+ "name": "Rate",
+ "value": "rate"
+ },
+ {
+ "name": "Start Trial",
+ "value": "start_trial"
+ },
+ {
+ "name": "List View",
+ "value": "list_view"
+ },
+ {
+ "name": "Page View",
+ "value": "page_view"
+ },
+ {
+ "name": "App Install",
+ "value": "app_install"
+ },
+ {
+ "name": "Custom Event 1",
+ "value": "custom_event_1"
+ },
+ {
+ "name": "Custom Event 2",
+ "value": "custom_event_2"
+ },
+ {
+ "name": "Custom Event 3",
+ "value": "custom_event_3"
+ },
+ {
+ "name": "Custom Event 4",
+ "value": "custom_event_4"
+ },
+ {
+ "name": "Custom Event 5",
+ "value": "custom_event_5"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Other Settings",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Enable Event Deduplication",
+ "value": "enableDeduplication",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "enableDeduplication",
+ "selectedValue": true
+ }
+ ],
+ "label": "Deduplication Key",
+ "value": "deduplicationKey",
+ "placeholder": "e.g: messageId",
+ "required": false,
+ "footerNote": "RudderStack will use this field for deduplication. If nothing is specified, messageId field will be used."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/snapchat_custom_audience/db-config.json b/src/configurations/destinations/snapchat_custom_audience/db-config.json
new file mode 100644
index 000000000..f50fdb41b
--- /dev/null
+++ b/src/configurations/destinations/snapchat_custom_audience/db-config.json
@@ -0,0 +1,22 @@
+{
+ "name": "SNAPCHAT_CUSTOM_AUDIENCE",
+ "displayName": "Snapchat Custom Audience",
+ "config": {
+ "auth": {
+ "type": "OAuth",
+ "role": "snapchat_custom_audience",
+ "rudderScopes": ["delivery"]
+ },
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["segmentId", "schema", "disableHashing"],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["cloud", "warehouse"],
+ "supportedMessageTypes": ["audiencelist"],
+ "destConfig": {
+ "defaultConfig": ["rudderAccountId", "segmentId", "schema", "disableHashing"]
+ },
+ "secretKeys": ["segmentId"]
+ }
+}
diff --git a/src/configurations/destinations/snapchat_custom_audience/metadata.json b/src/configurations/destinations/snapchat_custom_audience/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/snapchat_custom_audience/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snapchat_custom_audience/schema.json b/src/configurations/destinations/snapchat_custom_audience/schema.json
new file mode 100644
index 000000000..ab4216f7c
--- /dev/null
+++ b/src/configurations/destinations/snapchat_custom_audience/schema.json
@@ -0,0 +1,20 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["segmentId"],
+ "properties": {
+ "segmentId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "schema": {
+ "type": "string",
+ "pattern": "^(email|phone|mobileAdId)$"
+ },
+ "disableHashing": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snapchat_custom_audience/ui-config.json b/src/configurations/destinations/snapchat_custom_audience/ui-config.json
new file mode 100644
index 000000000..4f860c172
--- /dev/null
+++ b/src/configurations/destinations/snapchat_custom_audience/ui-config.json
@@ -0,0 +1,56 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Segment Id",
+ "value": "segmentId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Segment Id",
+ "required": true,
+ "placeholder": "e.g. 4996042382964722",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Schema",
+ "value": "schema",
+ "required": true,
+ "mode": "single",
+ "options": [
+ {
+ "name": "Email",
+ "value": "email"
+ },
+ {
+ "name": "Phone",
+ "value": "phone"
+ },
+ {
+ "name": "Mobile Ad Id",
+ "value": "mobileAdId"
+ }
+ ],
+ "defaultOption": {
+ "name": "Email",
+ "value": "email"
+ },
+ "footerNote": "Schema of your Audience"
+ },
+ {
+ "type": "checkbox",
+ "label": "Disable Hashing",
+ "value": "disableHashing",
+ "default": false
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/snapengage/db-config.json b/src/configurations/destinations/snapengage/db-config.json
new file mode 100644
index 000000000..a4f896b38
--- /dev/null
+++ b/src/configurations/destinations/snapengage/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "SNAPENGAGE",
+ "displayName": "SnapEngage",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "widgetId",
+ "recordLiveChatEvents",
+ "updateEventNames",
+ "eventsToStandard",
+ "eventFilteringOption",
+ "blacklistedEvents",
+ "whitelistedEvents"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "widgetId",
+ "recordLiveChatEvents",
+ "updateEventNames",
+ "eventsToStandard",
+ "eventFilteringOption",
+ "blacklistedEvents",
+ "whitelistedEvents"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["widgetId"]
+ }
+}
diff --git a/src/configurations/destinations/snapengage/metadata.json b/src/configurations/destinations/snapengage/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/snapengage/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snapengage/schema.json b/src/configurations/destinations/snapengage/schema.json
new file mode 100644
index 000000000..f1cf98ec8
--- /dev/null
+++ b/src/configurations/destinations/snapengage/schema.json
@@ -0,0 +1,80 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "required": ["widgetId"],
+ "type": "object",
+ "properties": {
+ "widgetId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "recordLiveChatEvents": {
+ "type": "boolean"
+ },
+ "updateEventNames": {
+ "type": "boolean"
+ },
+ "eventsToStandard": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/snapengage/ui_config.json b/src/configurations/destinations/snapengage/ui-config.json
similarity index 100%
rename from data/destinations/snapengage/ui_config.json
rename to src/configurations/destinations/snapengage/ui-config.json
diff --git a/src/configurations/destinations/snowflake/db-config.json b/src/configurations/destinations/snowflake/db-config.json
new file mode 100644
index 000000000..eb1e09aff
--- /dev/null
+++ b/src/configurations/destinations/snowflake/db-config.json
@@ -0,0 +1,55 @@
+{
+ "name": "SNOWFLAKE",
+ "displayName": "Snowflake",
+ "category": "warehouse",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "cloudSource",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": [
+ "account",
+ "database",
+ "warehouse",
+ "user",
+ "password",
+ "cloudProvider",
+ "bucketName",
+ "containerName",
+ "storageIntegration",
+ "iamRoleARN",
+ "roleBasedAuth",
+ "accessKeyID",
+ "accessKey",
+ "accountName",
+ "accountKey",
+ "useSASTokens",
+ "sasToken",
+ "credentials",
+ "namespace",
+ "prefix",
+ "syncFrequency",
+ "syncStartAt",
+ "enableSSE",
+ "excludeWindow",
+ "jsonPaths",
+ "useRudderStorage"
+ ]
+ },
+ "secretKeys": ["password", "accessKeyID", "accessKey", "accountKey", "sasToken"]
+ }
+}
diff --git a/src/configurations/destinations/snowflake/metadata.json b/src/configurations/destinations/snowflake/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/snowflake/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/snowflake/schema.json b/src/configurations/destinations/snowflake/schema.json
new file mode 100644
index 000000000..0fa10cf88
--- /dev/null
+++ b/src/configurations/destinations/snowflake/schema.json
@@ -0,0 +1,226 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "type": "object",
+ "required": [
+ "account",
+ "database",
+ "warehouse",
+ "user",
+ "password",
+ "syncFrequency",
+ "useRudderStorage"
+ ],
+ "properties": {
+ "account": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "database": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "warehouse": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "user": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "namespace": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$"
+ },
+ "syncFrequency": {
+ "type": "string",
+ "pattern": "^(30|60|180|360|720|1440)$",
+ "default": "30"
+ },
+ "syncStartAt": {
+ "type": "string"
+ },
+ "excludeWindow": {
+ "type": "object",
+ "required": ["excludeWindowStartTime", "excludeWindowEndTime"],
+ "properties": {
+ "excludeWindowStartTime": {
+ "type": "string"
+ },
+ "excludeWindowEndTime": {
+ "type": "string"
+ }
+ }
+ },
+ "jsonPaths": {
+ "type": "string",
+ "pattern": "(^env[.].*)|.*"
+ },
+ "useRudderStorage": {
+ "type": "boolean",
+ "default": false
+ },
+ "cloudProvider": {
+ "type": "string",
+ "pattern": "^(AWS|GCP|AZURE)$"
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["useRudderStorage"]
+ },
+ "then": {
+ "required": ["cloudProvider"]
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "prefix": {
+ "type": "string",
+ "pattern": "(^env[.].*)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "cloudProvider": {
+ "const": "AWS"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["cloudProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "iamRoleARN": {
+ "type": "string"
+ },
+ "roleBasedAuth": {
+ "type": "boolean"
+ },
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$"
+ },
+ "accessKeyID": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ },
+ "accessKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{0,100})$"
+ },
+ "enableSSE": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "cloudProvider": {
+ "const": "GCP"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["cloudProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "bucketName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$"
+ },
+ "credentials": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "storageIntegration": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "cloudProvider": {
+ "const": "AZURE"
+ },
+ "useRudderStorage": {
+ "const": false
+ }
+ },
+ "required": ["cloudProvider", "useRudderStorage"]
+ },
+ "then": {
+ "properties": {
+ "containerName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$"
+ },
+ "accountName": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ },
+ "storageIntegration": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "anyOf": [
+ {
+ "properties": {
+ "accountKey": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.{1,100})$"
+ }
+ },
+ "required": ["accountKey"]
+ },
+ {
+ "properties": {
+ "sasToken": {
+ "type": "string",
+ "pattern": "(^env[.].+)|^(.+)$"
+ },
+ "useSASTokens": {
+ "const": true
+ }
+ },
+ "required": ["sasToken", "useSASTokens"]
+ }
+ ]
+ }
+ }
+ ],
+ "additionalProperties": true
+ }
+}
diff --git a/src/configurations/destinations/snowflake/ui-config.json b/src/configurations/destinations/snowflake/ui-config.json
new file mode 100644
index 000000000..9c333b533
--- /dev/null
+++ b/src/configurations/destinations/snowflake/ui-config.json
@@ -0,0 +1,538 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account",
+ "value": "account",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Account",
+ "placeholder": "e.g: qya54180.us-east-1",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "database",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Database",
+ "placeholder": "e.g: RUDDER_EVENTS",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Warehouse",
+ "value": "warehouse",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Database",
+ "placeholder": "e.g: RUDDER_WAREHOUSE",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid User",
+ "placeholder": "e.g: RUDDER_USER",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "regex": ".*",
+ "placeholder": "e.g: RUDDER_PASSWORD",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Namespace",
+ "labelNote": "Schema name for the warehouse where the tables are created",
+ "value": "namespace",
+ "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$",
+ "regexErrorMessage": "Invalid Namespace",
+ "required": false,
+ "placeholder": "e.g: RUDDER_NAMESPACE",
+ "footerNote": "Default will be the source name"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Sync Frequency",
+ "value": "syncFrequency",
+ "options": [
+ {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ {
+ "name": "Every 1 hour",
+ "value": "60"
+ },
+ {
+ "name": "Every 3 hours",
+ "value": "180"
+ },
+ {
+ "name": "Every 6 hours",
+ "value": "360"
+ },
+ {
+ "name": "Every 12 hours",
+ "value": "720"
+ },
+ {
+ "name": "Every 24 hours",
+ "value": "1440"
+ }
+ ],
+ "defaultOption": {
+ "name": "Every 30 minutes",
+ "value": "30"
+ },
+ "required": false
+ },
+ {
+ "type": "timePicker",
+ "label": "Sync Starting At (Optional)",
+ "value": "syncStartAt",
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 15
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ },
+ {
+ "type": "timeRangePicker",
+ "label": "Exclude window (Optional)",
+ "value": "excludeWindow",
+ "startTime": {
+ "label": "start time",
+ "value": "excludeWindowStartTime"
+ },
+ "endTime": {
+ "label": "end time",
+ "value": "excludeWindowEndTime"
+ },
+ "options": {
+ "omitSeconds": true,
+ "minuteStep": 1
+ },
+ "required": false,
+ "footerNote": "Note: Please specify time in UTC"
+ },
+ {
+ "type": "textInput",
+ "label": "Json columns (Optional)",
+ "labelNote": "Specify required json properties in dot notation separated by commas",
+ "value": "jsonPaths",
+ "regex": "^(.*)$",
+ "placeholder": "e.g: testMap.nestedMap, testArray",
+ "required": false,
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/data-warehouse-integrations/snowflake/#configuring-snowflake-destination-in-rudderstack",
+ "text": "Instructions for setting up the json columns"
+ }
+ }
+ ]
+ },
+ {
+ "title": "Object Storage Configuration",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Use RudderStack managed object storage",
+ "value": "useRudderStorage",
+ "default": false,
+ "footerNote": "Note: Only available for RudderStack managed data planes"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Choose your Cloud",
+ "value": "cloudProvider",
+ "options": [
+ {
+ "name": "Amazon Web Services",
+ "value": "AWS"
+ },
+ {
+ "name": "Google Cloud Platform",
+ "value": "GCP"
+ },
+ {
+ "name": "Microsoft Azure",
+ "value": "AZURE"
+ }
+ ],
+ "defaultOption": {
+ "name": "Amazon Web Services",
+ "value": "AWS"
+ },
+ "required": true,
+ "preRequisiteField": {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging S3 Storage Bucket Name",
+ "labelNote": "S3 Bucket to store data before loading into Snowflake",
+ "value": "bucketName",
+ "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name",
+ "placeholder": "e.g: s3-event-logs",
+ "required": true,
+ "footerNote": "Please make sure the bucket exists in your S3"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "GCP"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging GCS Object Storage Bucket Name",
+ "labelNote": "GCS Bucket to store data before loading into Snowflake",
+ "value": "bucketName",
+ "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$",
+ "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name",
+ "required": true,
+ "placeholder": "e.g: gcs-event-logs",
+ "footerNote": "Please make sure the bucket exists in your GCS"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AZURE"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Staging Azure Blob Storage Container Name",
+ "labelNote": "Container to store data before loading into Snowflake",
+ "value": "containerName",
+ "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$",
+ "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name",
+ "required": true,
+ "placeholder": "e.g: azure-event-logs",
+ "footerNote": "Please make sure the container exists in your Azure Blob Storage"
+ },
+ {
+ "type": "textInput",
+ "label": "Prefix",
+ "value": "prefix",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Prefix",
+ "required": false,
+ "placeholder": "e.g: rudder",
+ "preRequisiteField": {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Storage Integration",
+ "value": "storageIntegration",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Storage Integration",
+ "placeholder": "e.g: aws_int",
+ "footerURL": {
+ "link": "https://docs.snowflake.com/en/user-guide/data-load-s3-config.html#option-1-configuring-a-snowflake-storage-integration",
+ "text": "Instructions for setting up the integration"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "GCP"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Storage Integration",
+ "value": "storageIntegration",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Storage Integration",
+ "required": true,
+ "placeholder": "e.g: gcs_int",
+ "footerURL": {
+ "link": "https://docs.snowflake.com/en/user-guide/data-load-gcs-config.html",
+ "text": "Instructions for setting up the integration"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AZURE"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Storage Integration",
+ "value": "storageIntegration",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Storage Integration",
+ "required": true,
+ "placeholder": "e.g: azure_int",
+ "footerURL": {
+ "link": "https://docs.snowflake.com/en/user-guide/data-load-azure-config.html#option-1-configuring-a-snowflake-storage-integration",
+ "text": "Instructions for setting up the integration"
+ }
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Role Based Authentication",
+ "value": "roleBasedAuth",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": true
+ }
+ ],
+ "label": "IAM Role ARN",
+ "value": "iamRoleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access",
+ "footerURL": {
+ "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/",
+ "text": "Instructions for creating IAM Role"
+ }
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Access Key ID",
+ "required": true,
+ "placeholder": "e.g: access-key-id",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "roleBasedAuth",
+ "selectedValue": false
+ }
+ ],
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid AWS Secret Access Key",
+ "required": true,
+ "placeholder": "e.g: secret-access-key",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AWS"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Enable Server Side Encryption For S3?",
+ "value": "enableSSE",
+ "default": false
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AZURE"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Name",
+ "value": "accountName",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Name",
+ "required": true,
+ "placeholder": "e.g: account-name"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AZURE"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": false
+ }
+ ],
+ "label": "Azure Blob Storage Account Key",
+ "value": "accountKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Azure Blob Storage Account Key",
+ "required": true,
+ "secret": true,
+ "placeholder": "e.g: account-key"
+ },
+ {
+ "type": "textInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AZURE"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ },
+ {
+ "name": "useSASTokens",
+ "selectedValue": true
+ }
+ ],
+ "label": "Azure Blob Storage SAS Token",
+ "value": "sasToken",
+ "regex": "^(.+)$",
+ "regexErrorMessage": "Invalid Azure Blob Storage SAS Token",
+ "required": true,
+ "placeholder": "e.g: sas-token",
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "AZURE"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Use shared access signature (SAS) Tokens",
+ "value": "useSASTokens",
+ "default": false,
+ "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": [
+ {
+ "name": "cloudProvider",
+ "selectedValue": "GCP"
+ },
+ {
+ "name": "useRudderStorage",
+ "selectedValue": false
+ }
+ ],
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/splitio/db-config.json b/src/configurations/destinations/splitio/db-config.json
new file mode 100644
index 000000000..4cc045ae1
--- /dev/null
+++ b/src/configurations/destinations/splitio/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "SPLITIO",
+ "displayName": "Split.io",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["apiKey", "environment", "trafficType"]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/splitio/metadata.json b/src/configurations/destinations/splitio/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/splitio/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/splitio/schema.json b/src/configurations/destinations/splitio/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/splitio/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/splitio/ui-config.json b/src/configurations/destinations/splitio/ui-config.json
new file mode 100644
index 000000000..58ce715d4
--- /dev/null
+++ b/src/configurations/destinations/splitio/ui-config.json
@@ -0,0 +1,37 @@
+{
+ "uiConfig": [
+ {
+ "title": "1. Connection Credentials",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "required": true,
+ "placeholder": "e.g: 45lgoasdphhsskbsglho22quopat4850glv0",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Environment",
+ "value": "environment",
+ "required": false,
+ "placeholder": "e.g: production",
+ "secret": false
+ }
+ ]
+ },
+ {
+ "title": "2. Information on Traffic",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Traffic Type",
+ "value": "trafficType",
+ "placeholder": "e.g: user",
+ "required": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/statsig/db-config.json b/src/configurations/destinations/statsig/db-config.json
new file mode 100644
index 000000000..353edd3d6
--- /dev/null
+++ b/src/configurations/destinations/statsig/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "STATSIG",
+ "displayName": "Statsig",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["alias", "group", "identify", "page", "screen", "track"],
+ "destConfig": {
+ "defaultConfig": ["secretKey"]
+ },
+ "secretKeys": ["secretKey"]
+ }
+}
diff --git a/src/configurations/destinations/statsig/metadata.json b/src/configurations/destinations/statsig/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/statsig/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/statsig/schema.json b/src/configurations/destinations/statsig/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/statsig/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/statsig/ui-config.json b/src/configurations/destinations/statsig/ui-config.json
new file mode 100644
index 000000000..358c481a2
--- /dev/null
+++ b/src/configurations/destinations/statsig/ui-config.json
@@ -0,0 +1,18 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Secret Key",
+ "value": "secretKey",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. secret-tHe5ecr37",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/tiktok_ads/db-config.json b/src/configurations/destinations/tiktok_ads/db-config.json
new file mode 100644
index 000000000..cd0184e08
--- /dev/null
+++ b/src/configurations/destinations/tiktok_ads/db-config.json
@@ -0,0 +1,17 @@
+{
+ "name": "TIKTOK_ADS",
+ "displayName": "TikTok Ads",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web", "cloud", "mobile"],
+ "supportedMessageTypes": ["track"],
+ "destConfig": {
+ "defaultConfig": ["accessToken", "pixelCode", "hashUserProperties", "eventsToStandard"]
+ },
+ "secretKeys": ["accessToken", "pixelCode"]
+ }
+}
diff --git a/src/configurations/destinations/tiktok_ads/metadata.json b/src/configurations/destinations/tiktok_ads/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/tiktok_ads/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/tiktok_ads/schema.json b/src/configurations/destinations/tiktok_ads/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/tiktok_ads/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/tiktok_ads/ui-config.json b/src/configurations/destinations/tiktok_ads/ui-config.json
new file mode 100644
index 000000000..461ccadea
--- /dev/null
+++ b/src/configurations/destinations/tiktok_ads/ui-config.json
@@ -0,0 +1,111 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Access Token",
+ "value": "accessToken",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. 1234ac663758946dfea3520b394bbac611b371f7",
+ "secret": true,
+ "footerNote": "TikTok Long Term Access Token"
+ },
+ {
+ "type": "textInput",
+ "label": "Pixel Code",
+ "value": "pixelCode",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Pixel Code",
+ "required": true,
+ "placeholder": "e.g: A1T8T4UYGVIQA8ORZMX9",
+ "secret": true,
+ "footerNote": "Your Pixel Code"
+ },
+ {
+ "type": "checkbox",
+ "label": "Hash Contextual User Properties (SHA-256)",
+ "value": "hashUserProperties",
+ "default": true,
+ "footerNote": "To hash user properties like email and phone number using SHA-256. Only applicable for cloud mode."
+ }
+ ]
+ },
+ {
+ "title": "Event Settings",
+ "fields": [
+ {
+ "type": "dynamicSelectForm",
+ "label": "Mapping to trigger the TikTok Ads standard events for the respective Events",
+ "labelLeft": "Event Name",
+ "labelRight": "Standard Events",
+ "value": "eventsToStandard",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g: Sign up completed",
+ "options": [
+ {
+ "name": "Add Payment Info",
+ "value": "AddPaymentInfo"
+ },
+ {
+ "name": "Add To Cart",
+ "value": "AddToCart"
+ },
+ {
+ "name": "Add To Wishlist",
+ "value": "AddToWishlist"
+ },
+ {
+ "name": "Click Button",
+ "value": "ClickButton"
+ },
+ {
+ "name": "Complete Payment",
+ "value": "CompletePayment"
+ },
+ {
+ "name": "Complete Registration",
+ "value": "CompleteRegistration"
+ },
+ {
+ "name": "Contact",
+ "value": "Contact"
+ },
+ {
+ "name": "Download",
+ "value": "Download"
+ },
+ {
+ "name": "Initiate Checkout",
+ "value": "InitiateCheckout"
+ },
+ {
+ "name": "Place An Order",
+ "value": "PlaceAnOrder"
+ },
+ {
+ "name": "Search",
+ "value": "Search"
+ },
+ {
+ "name": "Submit Form",
+ "value": "SubmitForm"
+ },
+ {
+ "name": "Subscribe",
+ "value": "Subscribe"
+ },
+ {
+ "name": "View Content",
+ "value": "ViewContent"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/trengo/db-config.json b/src/configurations/destinations/trengo/db-config.json
new file mode 100644
index 000000000..dabb4090d
--- /dev/null
+++ b/src/configurations/destinations/trengo/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "TRENGO",
+ "displayName": "Trengo",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiToken",
+ "channelId",
+ "channelIdentifier",
+ "enableDedup",
+ "eventTemplateMap"
+ ]
+ },
+ "secretKeys": ["apiToken"]
+ }
+}
diff --git a/src/configurations/destinations/trengo/metadata.json b/src/configurations/destinations/trengo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/trengo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/trengo/schema.json b/src/configurations/destinations/trengo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/trengo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/trengo/ui-config.json b/src/configurations/destinations/trengo/ui-config.json
new file mode 100644
index 000000000..fdf02d2bc
--- /dev/null
+++ b/src/configurations/destinations/trengo/ui-config.json
@@ -0,0 +1,70 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiToken",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwian..",
+ "secret": true
+ }
+ ]
+ },
+ {
+ "title": "Destination Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Channel Id",
+ "value": "channelId",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: 89002"
+ },
+ {
+ "type": "singleSelect",
+ "label": "Channel Identifier",
+ "value": "channelIdentifier",
+ "options": [
+ {
+ "name": "Email",
+ "value": "email"
+ },
+ {
+ "name": "Phone",
+ "value": "phone"
+ }
+ ],
+ "defaultOption": {
+ "name": "Email",
+ "value": "email"
+ },
+ "required": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable deduplication for Contacts",
+ "value": "enableDedup",
+ "default": true,
+ "footerNote": "Note: Disabling this field will create a possibility to create duplicate contacts, before disabling it view the destination docs to understand the full implications"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map events with template",
+ "labelLeft": "Event Name",
+ "labelRight": "Event Template",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g: Product Purchased",
+ "placeholderRight": "e.g: {{event}} Triggered",
+ "value": "eventTemplateMap",
+ "footerNote": "You can map specific events with custom templates. Note:To track events to Trengo adding event name in the key is mandatory. For details please view destination docs."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/tvsquared/db-config.json b/src/configurations/destinations/tvsquared/db-config.json
new file mode 100644
index 000000000..f6b465572
--- /dev/null
+++ b/src/configurations/destinations/tvsquared/db-config.json
@@ -0,0 +1,34 @@
+{
+ "name": "TVSQUARED",
+ "displayName": "TVSquared",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "brandId",
+ "clientId",
+ "eventWhiteList",
+ "customMetrics",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "oneTrustCookieCategories",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "brandId",
+ "clientId",
+ "eventWhiteList",
+ "customMetrics",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": ["credentials"]
+ }
+}
diff --git a/src/configurations/destinations/tvsquared/metadata.json b/src/configurations/destinations/tvsquared/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/tvsquared/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/tvsquared/schema.json b/src/configurations/destinations/tvsquared/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/tvsquared/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/destinations/tvsquared/ui_config.json b/src/configurations/destinations/tvsquared/ui-config.json
similarity index 100%
rename from data/destinations/tvsquared/ui_config.json
rename to src/configurations/destinations/tvsquared/ui-config.json
diff --git a/src/configurations/destinations/user/db-config.json b/src/configurations/destinations/user/db-config.json
new file mode 100644
index 000000000..0b91273e6
--- /dev/null
+++ b/src/configurations/destinations/user/db-config.json
@@ -0,0 +1,46 @@
+{
+ "name": "USER",
+ "displayName": "user.com",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "appSubdomain",
+ "userAttributesMapping",
+ "userEvents",
+ "rsEventName",
+ "userEventName",
+ "eventProperties",
+ "companyAttributesMapping"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["track", "identify", "group", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "apiKey",
+ "appSubdomain",
+ "userAttributesMapping",
+ "userEvents",
+ "rsEventName",
+ "userEventName",
+ "eventProperties",
+ "companyAttributesMapping"
+ ]
+ },
+ "secretKeys": ["apiKey"]
+ }
+}
diff --git a/src/configurations/destinations/user/metadata.json b/src/configurations/destinations/user/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/user/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/user/schema.json b/src/configurations/destinations/user/schema.json
new file mode 100644
index 000000000..8e91fff97
--- /dev/null
+++ b/src/configurations/destinations/user/schema.json
@@ -0,0 +1,81 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["apiKey"],
+ "properties": {
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$"
+ },
+ "appSubdomain": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$"
+ },
+ "userAttributesMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "userEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "rsEventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "userEventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "eventProperties": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "companyAttributesMapping": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/user/ui-config.json b/src/configurations/destinations/user/ui-config.json
new file mode 100644
index 000000000..225eda9e1
--- /dev/null
+++ b/src/configurations/destinations/user/ui-config.json
@@ -0,0 +1,92 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Public REST API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Key",
+ "required": true,
+ "placeholder": "e.g: 1d6583b196d34de28a3g19ahadde4b0z"
+ },
+ {
+ "type": "textInput",
+ "label": "Your App Subdomain",
+ "value": "appSubdomain",
+ "regex": "^(.{0,500})$",
+ "regexErrorMessage": "Invalid App Subdomain",
+ "required": true,
+ "placeholder": "e.g: commander"
+ }
+ ]
+ },
+ {
+ "title": "Mapping Configurations",
+ "fields": [
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder user attributes to User.com user attributes",
+ "value": "userAttributesMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. userIndustry",
+ "placeholderRight": "e.g. industry",
+ "labelLeft": "Rudder Property",
+ "labelRight": "user.com user attribute"
+ },
+ {
+ "type": "dynamicCustomForm",
+ "label": "Map RudderStack event name to User.com event name",
+ "value": "userEvents",
+ "customFields": [
+ {
+ "type": "textInput",
+ "label": "RudderStack Event Name",
+ "value": "rsEventName",
+ "regex": "^(.{0,100})$",
+ "required": false,
+ "placeholder": "e.g Products Searched",
+ "footerNote": "Enter the RudderStack event name you want to map"
+ },
+ {
+ "type": "textInput",
+ "label": "User.com Event Name",
+ "value": "userEventName",
+ "regex": "^(.{0,100})$",
+ "required": false,
+ "placeholder": "e.g Search",
+ "footerNote": "Enter the corresponding User.com event name you want to map"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map your Event Property",
+ "value": "eventProperties",
+ "labelLeft": "RudderStack Property Name",
+ "labelRight": "User.com Event Attribute Name",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g firstName",
+ "placeholderRight": "e.g first_name"
+ }
+ ]
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Map Rudder company attributes to User.com company attributes",
+ "value": "companyAttributesMapping",
+ "required": false,
+ "keyLeft": "from",
+ "keyRight": "to",
+ "placeholderLeft": "e.g. companyCategoty",
+ "placeholderRight": "e.g. category",
+ "labelLeft": "Rudder Property",
+ "labelRight": "user.com company attribute"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/userlist/db-config.json b/src/configurations/destinations/userlist/db-config.json
new file mode 100644
index 000000000..a097a3833
--- /dev/null
+++ b/src/configurations/destinations/userlist/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "USERLIST",
+ "displayName": "Userlist",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["group", "identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["pushKey"]
+ },
+ "secretKeys": ["pushKey"]
+ }
+}
diff --git a/src/configurations/destinations/userlist/metadata.json b/src/configurations/destinations/userlist/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/userlist/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/userlist/schema.json b/src/configurations/destinations/userlist/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/userlist/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/userlist/ui-config.json b/src/configurations/destinations/userlist/ui-config.json
new file mode 100644
index 000000000..111d685d5
--- /dev/null
+++ b/src/configurations/destinations/userlist/ui-config.json
@@ -0,0 +1,18 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Userlist Push Key",
+ "value": "pushKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Userlist Push Key",
+ "required": true,
+ "placeholder": "e.g: sk_UuCIkdGmSnN4OaBCCFOuJaBcb3O2wD8S"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/variance/db-config.json b/src/configurations/destinations/variance/db-config.json
new file mode 100644
index 000000000..b0baa5254
--- /dev/null
+++ b/src/configurations/destinations/variance/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "VARIANCE",
+ "displayName": "Variance",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "cdkEnabled": true,
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "destConfig": {
+ "defaultConfig": ["webhookUrl", "authHeader"]
+ },
+ "secretKeys": ["authHeader"]
+ }
+}
diff --git a/src/configurations/destinations/variance/metadata.json b/src/configurations/destinations/variance/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/variance/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/variance/schema.json b/src/configurations/destinations/variance/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/destinations/variance/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/destinations/variance/ui-config.json b/src/configurations/destinations/variance/ui-config.json
new file mode 100644
index 000000000..3eaa6ec45
--- /dev/null
+++ b/src/configurations/destinations/variance/ui-config.json
@@ -0,0 +1,26 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Webhook URL",
+ "value": "webhookUrl",
+ "required": true,
+ "placeholder": "https://your-org.variance.com",
+ "regex": "^(?!.*\\.ngrok\\.io).*"
+ },
+ {
+ "type": "textInput",
+ "label": "Authorization Header Value",
+ "value": "authHeader",
+ "required": true,
+ "placeholder": "",
+ "regex": ".*",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/vero/db-config.json b/src/configurations/destinations/vero/db-config.json
new file mode 100644
index 000000000..d12e61a8a
--- /dev/null
+++ b/src/configurations/destinations/vero/db-config.json
@@ -0,0 +1,40 @@
+{
+ "name": "VERO",
+ "displayName": "Vero",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "apiKey",
+ "authToken",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption",
+ "oneTrustCookieCategories"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "amp",
+ "android",
+ "cordova",
+ "cloud",
+ "flutter",
+ "ios",
+ "reactnative",
+ "unity",
+ "warehouse",
+ "web"
+ ],
+ "supportedMessageTypes": ["identify", "track", "page", "screen", "alias"],
+ "destConfig": {
+ "defaultConfig": [
+ "authToken",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["apiKey", "useNativeSDK", "oneTrustCookieCategories"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/vero/metadata.json b/src/configurations/destinations/vero/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/vero/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/vero/schema.json b/src/configurations/destinations/vero/schema.json
new file mode 100644
index 000000000..d1fef5b0c
--- /dev/null
+++ b/src/configurations/destinations/vero/schema.json
@@ -0,0 +1,70 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": [],
+ "properties": {
+ "apiKey": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ },
+ "authToken": {
+ "type": "string"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/vero/ui_config.json b/src/configurations/destinations/vero/ui-config.json
similarity index 100%
rename from data/destinations/vero/ui_config.json
rename to src/configurations/destinations/vero/ui-config.json
diff --git a/src/configurations/destinations/vwo/db-config.json b/src/configurations/destinations/vwo/db-config.json
new file mode 100644
index 000000000..b140bf4a0
--- /dev/null
+++ b/src/configurations/destinations/vwo/db-config.json
@@ -0,0 +1,39 @@
+{
+ "name": "VWO",
+ "displayName": "VWO",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "accountId",
+ "isSPA",
+ "sendExperimentTrack",
+ "sendExperimentIdentify",
+ "libraryTolerance",
+ "settingsTolerance",
+ "useExistingJquery",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["web"],
+ "destConfig": {
+ "defaultConfig": [
+ "accountId",
+ "isSPA",
+ "sendExperimentTrack",
+ "sendExperimentIdentify",
+ "libraryTolerance",
+ "settingsTolerance",
+ "useExistingJquery",
+ "blacklistedEvents",
+ "whitelistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ },
+ "secretKeys": []
+ }
+}
diff --git a/src/configurations/destinations/vwo/metadata.json b/src/configurations/destinations/vwo/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/vwo/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/vwo/schema.json b/src/configurations/destinations/vwo/schema.json
new file mode 100644
index 000000000..e6be2d9dd
--- /dev/null
+++ b/src/configurations/destinations/vwo/schema.json
@@ -0,0 +1,86 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["accountId"],
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "isSPA": {
+ "type": "boolean"
+ },
+ "sendExperimentTrack": {
+ "type": "boolean"
+ },
+ "sendExperimentIdentify": {
+ "type": "boolean"
+ },
+ "libraryTolerance": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "settingsTolerance": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "useExistingJquery": {
+ "type": "boolean"
+ },
+ "eventFilteringOption": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/vwo/ui_config.json b/src/configurations/destinations/vwo/ui-config.json
similarity index 100%
rename from data/destinations/vwo/ui_config.json
rename to src/configurations/destinations/vwo/ui-config.json
diff --git a/src/configurations/destinations/webengage/db-config.json b/src/configurations/destinations/webengage/db-config.json
new file mode 100644
index 000000000..8b9ddb71f
--- /dev/null
+++ b/src/configurations/destinations/webengage/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "WEBENGAGE",
+ "displayName": "WebEngage",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "web",
+ "cloud",
+ "mobile",
+ "android",
+ "ios",
+ "unity",
+ "amp",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["identify", "track", "page", "screen"],
+ "destConfig": {
+ "defaultConfig": ["licenseCode", "apiKey", "dataCenter"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/webengage/metadata.json b/src/configurations/destinations/webengage/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/webengage/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/webengage/schema.json b/src/configurations/destinations/webengage/schema.json
new file mode 100644
index 000000000..9a2b616cf
--- /dev/null
+++ b/src/configurations/destinations/webengage/schema.json
@@ -0,0 +1,21 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["licenseCode", "apiKey", "dataCenter"],
+ "properties": {
+ "licenseCode": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "apiKey": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "dataCenter": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(standard|ind)$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/webengage/ui-config.json b/src/configurations/destinations/webengage/ui-config.json
new file mode 100644
index 000000000..30165635b
--- /dev/null
+++ b/src/configurations/destinations/webengage/ui-config.json
@@ -0,0 +1,46 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "License Code",
+ "value": "licenseCode",
+ "regex": "^(.{1,100})$",
+ "required": true,
+ "placeholder": "e.g. b4a29aba",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Api Key",
+ "value": "apiKey",
+ "regex": "^(.{1,100})$",
+ "required": true,
+ "placeholder": "e.g. b4a29aba17jmbad7b6c1a5asjghj",
+ "secret": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Data Center",
+ "value": "dataCenter",
+ "options": [
+ {
+ "name": "Standard",
+ "value": "standard"
+ },
+ {
+ "name": "IND",
+ "value": "ind"
+ }
+ ],
+ "defaultOption": {
+ "name": "Standard",
+ "value": "standard"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/webhook/db-config.json b/src/configurations/destinations/webhook/db-config.json
new file mode 100644
index 000000000..6c0ab2613
--- /dev/null
+++ b/src/configurations/destinations/webhook/db-config.json
@@ -0,0 +1,27 @@
+{
+ "name": "WEBHOOK",
+ "displayName": "Webhook",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": false,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "destConfig": {
+ "defaultConfig": ["webhookUrl", "webhookMethod", "headers"]
+ },
+ "secretKeys": ["headers.to"]
+ }
+}
diff --git a/src/configurations/destinations/webhook/metadata.json b/src/configurations/destinations/webhook/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/webhook/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/webhook/schema.json b/src/configurations/destinations/webhook/schema.json
similarity index 100%
rename from data/destinations/webhook/schema.json
rename to src/configurations/destinations/webhook/schema.json
diff --git a/data/destinations/webhook/ui_config.json b/src/configurations/destinations/webhook/ui-config.json
similarity index 100%
rename from data/destinations/webhook/ui_config.json
rename to src/configurations/destinations/webhook/ui-config.json
diff --git a/src/configurations/destinations/woopra/db-config.json b/src/configurations/destinations/woopra/db-config.json
new file mode 100644
index 000000000..f9b9a82b8
--- /dev/null
+++ b/src/configurations/destinations/woopra/db-config.json
@@ -0,0 +1,58 @@
+{
+ "name": "WOOPRA",
+ "displayName": "WOOPRA",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [
+ "projectName",
+ "cookieName",
+ "cookiePath",
+ "cookieDomain",
+ "clickTracking",
+ "downloadTracking",
+ "hideCampaign",
+ "idleTimeout",
+ "ignoreQueryUrl",
+ "outgoingIgnoreSubdomain",
+ "outgoingTracking",
+ "whitelistedEvents",
+ "blacklistedEvents",
+ "eventFilteringOption"
+ ],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track", "page"],
+ "destConfig": {
+ "defaultConfig": [
+ "projectName",
+ "cookieName",
+ "cookiePath",
+ "cookieDomain",
+ "clickTracking",
+ "downloadTracking",
+ "hideCampaign",
+ "idleTimeout",
+ "ignoreQueryUrl",
+ "outgoingIgnoreSubdomain",
+ "outgoingTracking",
+ "whitelistedEvents",
+ "blacklistedEvents",
+ "eventFilteringOption"
+ ],
+ "web": ["useNativeSDK", "oneTrustCookieCategories"]
+ }
+ }
+}
diff --git a/src/configurations/destinations/woopra/metadata.json b/src/configurations/destinations/woopra/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/woopra/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/woopra/schema.json b/src/configurations/destinations/woopra/schema.json
new file mode 100644
index 000000000..9b6f6d189
--- /dev/null
+++ b/src/configurations/destinations/woopra/schema.json
@@ -0,0 +1,92 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["projectName"],
+ "properties": {
+ "projectName": {
+ "type": "string",
+ "pattern": "^(([a-z0-9]+[.])+[a-z]{1,})$"
+ },
+ "cookieName": {
+ "type": "string"
+ },
+ "cookieDomain": {
+ "type": "string"
+ },
+ "clickTracking": {
+ "type": "boolean"
+ },
+ "cookiePath": {
+ "type": "string"
+ },
+ "downloadTracking": {
+ "type": "boolean"
+ },
+ "hideCampaign": {
+ "type": "boolean"
+ },
+ "idleTimeout": {
+ "type": "string"
+ },
+ "ignoreQueryUrl": {
+ "type": "boolean"
+ },
+ "outgoingIgnoreSubdomain": {
+ "type": "boolean"
+ },
+ "outgoingTracking": {
+ "type": "boolean"
+ },
+ "whitelistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "blacklistedEvents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "eventName": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "useNativeSDK": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "boolean"
+ }
+ }
+ },
+ "oneTrustCookieCategories": {
+ "type": "object",
+ "properties": {
+ "web": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "oneTrustCookieCategory": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/data/destinations/woopra/ui_config.json b/src/configurations/destinations/woopra/ui-config.json
similarity index 100%
rename from data/destinations/woopra/ui_config.json
rename to src/configurations/destinations/woopra/ui-config.json
diff --git a/src/configurations/destinations/wootric/db-config.json b/src/configurations/destinations/wootric/db-config.json
new file mode 100644
index 000000000..b3929cce3
--- /dev/null
+++ b/src/configurations/destinations/wootric/db-config.json
@@ -0,0 +1,28 @@
+{
+ "name": "WOOTRIC",
+ "displayName": "Wootric",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": ["username", "password", "accountToken"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["identify", "track"],
+ "destConfig": {
+ "defaultConfig": ["username", "password", "accountToken"]
+ },
+ "secretKeys": ["password", "accountToken"]
+ }
+}
diff --git a/src/configurations/destinations/wootric/metadata.json b/src/configurations/destinations/wootric/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/wootric/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/wootric/schema.json b/src/configurations/destinations/wootric/schema.json
new file mode 100644
index 000000000..15cde354c
--- /dev/null
+++ b/src/configurations/destinations/wootric/schema.json
@@ -0,0 +1,21 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["username", "password", "accountToken"],
+ "properties": {
+ "username": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "password": {
+ "type": "string",
+ "pattern": "(^env[.].+)|.+"
+ },
+ "accountToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/wootric/ui-config.json b/src/configurations/destinations/wootric/ui-config.json
new file mode 100644
index 000000000..f3426fb2b
--- /dev/null
+++ b/src/configurations/destinations/wootric/ui-config.json
@@ -0,0 +1,38 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Username",
+ "value": "username",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid User",
+ "required": true,
+ "placeholder": "e.g. test@gmail.com",
+ "secret": false
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g. password@123",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Account Token",
+ "value": "accountToken",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Account Token",
+ "required": true,
+ "placeholder": "e.g. NPS-123456",
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/yahoo_dsp/db-config.json b/src/configurations/destinations/yahoo_dsp/db-config.json
new file mode 100644
index 000000000..54cf0dcf5
--- /dev/null
+++ b/src/configurations/destinations/yahoo_dsp/db-config.json
@@ -0,0 +1,26 @@
+{
+ "name": "YAHOO_DSP",
+ "displayName": "Yahoo DSP",
+ "config": {
+ "transformAt": "router",
+ "transformAtV1": "router",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": ["cloud", "warehouse"],
+ "syncBehaviours": [],
+ "supportedMessageTypes": ["audiencelist"],
+ "destConfig": {
+ "defaultConfig": [
+ "clientId",
+ "clientSecret",
+ "audienceId",
+ "accountId",
+ "audienceType",
+ "hashRequired",
+ "seedListType"
+ ]
+ },
+ "secretKeys": ["clientId", "clientSecret"]
+ }
+}
diff --git a/src/configurations/destinations/yahoo_dsp/metadata.json b/src/configurations/destinations/yahoo_dsp/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/yahoo_dsp/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/yahoo_dsp/schema.json b/src/configurations/destinations/yahoo_dsp/schema.json
new file mode 100644
index 000000000..14b110d6b
--- /dev/null
+++ b/src/configurations/destinations/yahoo_dsp/schema.json
@@ -0,0 +1,36 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["clientId", "clientSecret", "audienceId", "accountId"],
+ "properties": {
+ "clientId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "clientSecret": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$"
+ },
+ "audienceId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ },
+ "accountId": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$"
+ },
+ "audienceType": {
+ "type": "string",
+ "pattern": "^(EMAIL|DEVICE_ID|IP_ADDRESS)$"
+ },
+ "seedListType": {
+ "type": "string",
+ "pattern": "^(GPADVID|IDFA)$"
+ },
+ "hashRequired": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/yahoo_dsp/ui-config.json b/src/configurations/destinations/yahoo_dsp/ui-config.json
new file mode 100644
index 000000000..dbe0dc1b9
--- /dev/null
+++ b/src/configurations/destinations/yahoo_dsp/ui-config.json
@@ -0,0 +1,126 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Client Id",
+ "value": "clientId",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Client Id",
+ "required": true,
+ "placeholder": "e.g. b05ebeb8-a223-3cd6-z4c5-9512d3d66d431",
+ "secret": true,
+ "footerNote": "Put your Client Id here, it will be used for generating access token."
+ },
+ {
+ "type": "textInput",
+ "label": "Client Secret",
+ "value": "clientSecret",
+ "regex": "^(.{1,100})$",
+ "regexErrorMessage": "Invalid Client Secret",
+ "required": true,
+ "placeholder": "e.g: XpewiPsz3yc9LrADR43f9h53jADLccXTykHCcA6eEoFR4rXQ",
+ "secret": true,
+ "footerNote": "Put your Client Secret here, it will be used for generating access token."
+ }
+ ]
+ },
+ {
+ "title": "Account Setting",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Id",
+ "value": "accountId",
+ "regex": "^[0-9]+$",
+ "regexErrorMessage": "Invalid Account Id",
+ "required": true,
+ "placeholder": "e.g. 84223",
+ "secret": false,
+ "footerNote": "Your Account Id"
+ }
+ ]
+ },
+ {
+ "title": "Audience Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Audience Type",
+ "value": "audienceType",
+ "required": true,
+ "placeholder": "Email",
+ "options": [
+ {
+ "name": "Email",
+ "value": "EMAIL"
+ },
+ {
+ "name": "Device Id",
+ "value": "DEVICE_ID"
+ },
+ {
+ "name": "IP Address",
+ "value": "IP_ADDRESS"
+ }
+ ],
+ "defaultOption": {
+ "name": "Email",
+ "value": "EMAIL"
+ }
+ },
+ {
+ "type": "singleSelect",
+ "label": "Seed List Type",
+ "value": "seedListType",
+ "required": true,
+ "placeholder": "Google (GPADVID)",
+ "options": [
+ {
+ "name": "Google (GPADVID)",
+ "value": "GPADVID"
+ },
+ {
+ "name": "Apple (IDFA)",
+ "value": "IDFA"
+ }
+ ],
+ "defaultOption": {
+ "name": "Google (GPADVID)",
+ "value": "GPADVID"
+ },
+ "preRequisiteField": {
+ "name": "audienceType",
+ "selectedValue": "DEVICE_ID"
+ },
+ "footerNote": "Your device type"
+ },
+ {
+ "type": "textInput",
+ "label": "Audience Id",
+ "value": "audienceId",
+ "regex": "^[0-9]+$",
+ "regexErrorMessage": "Invalid Audience Id",
+ "required": true,
+ "placeholder": "e.g. 53213445",
+ "secret": false,
+ "footerNote": "The audience id of the audience to which you want to sync the data"
+ }
+ ]
+ },
+ {
+ "title": "Event Setting",
+ "fields": [
+ {
+ "type": "checkbox",
+ "label": "Hash Required",
+ "value": "hashRequired",
+ "default": true,
+ "footerNote": "Toggle it off if hashing is not required"
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/destinations/yandex_metrica/db_config.json b/src/configurations/destinations/yandex_metrica/db-config.json
similarity index 100%
rename from data/destinations/yandex_metrica/db_config.json
rename to src/configurations/destinations/yandex_metrica/db-config.json
diff --git a/src/configurations/destinations/yandex_metrica/metadata.json b/src/configurations/destinations/yandex_metrica/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/yandex_metrica/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/data/destinations/yandex_metrica/schema.json b/src/configurations/destinations/yandex_metrica/schema.json
similarity index 100%
rename from data/destinations/yandex_metrica/schema.json
rename to src/configurations/destinations/yandex_metrica/schema.json
diff --git a/data/destinations/yandex_metrica/ui_config.json b/src/configurations/destinations/yandex_metrica/ui-config.json
similarity index 100%
rename from data/destinations/yandex_metrica/ui_config.json
rename to src/configurations/destinations/yandex_metrica/ui-config.json
diff --git a/src/configurations/destinations/zapier/db-config.json b/src/configurations/destinations/zapier/db-config.json
new file mode 100644
index 000000000..536faa863
--- /dev/null
+++ b/src/configurations/destinations/zapier/db-config.json
@@ -0,0 +1,29 @@
+{
+ "name": "ZAPIER",
+ "displayName": "Zapier",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "cdkEnabled": true,
+ "includeKeys": ["zapUrl", "trackEventsToZap", "pageScreenEventsToZap"],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "reactnative",
+ "flutter",
+ "cordova",
+ "warehouse"
+ ],
+ "supportedMessageTypes": ["track", "page", "screen"],
+ "destConfig": {
+ "defaultConfig": ["zapUrl", "trackEventsToZap", "pageScreenEventsToZap"]
+ },
+ "secretKeys": ["zapUrl"]
+ }
+}
diff --git a/src/configurations/destinations/zapier/metadata.json b/src/configurations/destinations/zapier/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/zapier/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/zapier/schema.json b/src/configurations/destinations/zapier/schema.json
new file mode 100644
index 000000000..69b8ab81e
--- /dev/null
+++ b/src/configurations/destinations/zapier/schema.json
@@ -0,0 +1,45 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "required": ["zapUrl"],
+ "properties": {
+ "zapUrl": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$"
+ },
+ "trackEventsToZap": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ },
+ "pageScreenEventsToZap": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "from": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "to": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/zapier/ui-config.json b/src/configurations/destinations/zapier/ui-config.json
new file mode 100644
index 000000000..23c8e3cb9
--- /dev/null
+++ b/src/configurations/destinations/zapier/ui-config.json
@@ -0,0 +1,46 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Zap URL",
+ "value": "zapUrl",
+ "regex": "(?!.*\\.ngrok\\.io)^(.{1,100})$",
+ "regexErrorMessage": "Invalid Zap URL",
+ "required": true,
+ "placeholder": "e.g. https://hooks.zapier.com/hooks/catch/123456/abcdefg/",
+ "secret": true,
+ "footerNote": "Enter the ZAP URL where all your events should go"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Mapping Track Events to a particular Zap",
+ "labelLeft": "Event Name",
+ "labelRight": "Zap URL",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g: Submit",
+ "placeholderRight": "e.g: https://hooks.zapier.com/hooks/catch/123456/abcdefg/",
+ "value": "trackEventsToZap",
+ "footerNote": "Enter the Track events to be sent to the specified ZAP URL"
+ },
+ {
+ "type": "dynamicForm",
+ "label": "Mapping Page/Screen Events to a particular Zap",
+ "labelLeft": "Event Name",
+ "labelRight": "Zap URL",
+ "keyLeft": "from",
+ "keyRight": "to",
+ "required": false,
+ "placeholderLeft": "e.g: Submit",
+ "placeholderRight": "e.g: https://hooks.zapier.com/hooks/catch/123456/abcdefg/",
+ "value": "pageScreenEventsToZap",
+ "footerNote": "Enter the Page or Screen events to be sent to the specified ZAP URL"
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/destinations/zendesk/db-config.json b/src/configurations/destinations/zendesk/db-config.json
new file mode 100644
index 000000000..1bc4aa6c9
--- /dev/null
+++ b/src/configurations/destinations/zendesk/db-config.json
@@ -0,0 +1,36 @@
+{
+ "name": "ZENDESK",
+ "displayName": "Zendesk",
+ "config": {
+ "transformAt": "processor",
+ "transformAtV1": "processor",
+ "saveDestinationResponse": true,
+ "includeKeys": [],
+ "excludeKeys": [],
+ "supportedSourceTypes": [
+ "android",
+ "ios",
+ "web",
+ "unity",
+ "amp",
+ "cloud",
+ "warehouse",
+ "reactnative",
+ "flutter",
+ "cordova"
+ ],
+ "supportedMessageTypes": ["group", "identify", "track"],
+ "destConfig": {
+ "defaultConfig": [
+ "email",
+ "apiToken",
+ "domain",
+ "createUsersAsVerified",
+ "sendGroupCallsWithoutUserId",
+ "removeUsersFromOrganization",
+ "searchByExternalId"
+ ]
+ },
+ "secretKeys": ["apiToken"]
+ }
+}
diff --git a/src/configurations/destinations/zendesk/metadata.json b/src/configurations/destinations/zendesk/metadata.json
new file mode 100644
index 000000000..59c4d726b
--- /dev/null
+++ b/src/configurations/destinations/zendesk/metadata.json
@@ -0,0 +1,25 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "connectionMode": {
+ "cloud-mode": true,
+ "device-mode": ["web", "android"]
+ },
+ "supportedMethods": {
+ "cloud-mode": ["track", "identify"],
+ "device-mode": {
+ "web": ["track", "identify"]
+ }
+ },
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "android": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/zendesk/schema.json b/src/configurations/destinations/zendesk/schema.json
new file mode 100644
index 000000000..d8cafc20e
--- /dev/null
+++ b/src/configurations/destinations/zendesk/schema.json
@@ -0,0 +1,34 @@
+{
+ "configSchema": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["email", "apiToken", "domain"],
+ "properties": {
+ "email": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "apiToken": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "domain": {
+ "type": "string",
+ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$"
+ },
+ "createUsersAsVerified": {
+ "type": "boolean"
+ },
+ "sendGroupCallsWithoutUserId": {
+ "type": "boolean"
+ },
+ "removeUsersFromOrganization": {
+ "type": "boolean"
+ },
+ "searchByExternalId": {
+ "type": "boolean"
+ }
+ }
+ }
+}
diff --git a/src/configurations/destinations/zendesk/ui-config.json b/src/configurations/destinations/zendesk/ui-config.json
new file mode 100644
index 000000000..fabdf3c55
--- /dev/null
+++ b/src/configurations/destinations/zendesk/ui-config.json
@@ -0,0 +1,62 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Email",
+ "value": "email",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Email Address",
+ "required": true,
+ "placeholder": "e.g: abc@xyz.com"
+ },
+ {
+ "type": "textInput",
+ "label": "API Token",
+ "value": "apiToken",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid API Token",
+ "required": true,
+ "placeholder": "API Token for Zendesk login",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Zendesk Subdomain",
+ "value": "domain",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Zendesk Subdomain",
+ "required": true,
+ "placeholder": "Subdomain only not including .zendesk.com"
+ },
+ {
+ "type": "checkbox",
+ "label": "Create users as verified",
+ "value": "createUsersAsVerified",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Send Group Calls without User ID",
+ "value": "sendGroupCallsWithoutUserId",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Enable Removing Users from Organizations",
+ "value": "removeUsersFromOrganization",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "label": "Update user's primary email",
+ "value": "searchByExternalId",
+ "default": false,
+ "footerNote": "If enabled, RudderStack sets the email in the event as the user's primary email in Zendesk, replacing the previous primary email. Otherwise, it is set as the secondary email, if any primary email exists."
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/sources/GainsightPX/db_config.json b/src/configurations/sources/GainsightPX/db-config.json
similarity index 100%
rename from data/sources/GainsightPX/db_config.json
rename to src/configurations/sources/GainsightPX/db-config.json
diff --git a/data/sources/mailjet/metadata.json b/src/configurations/sources/GainsightPX/metadata.json
similarity index 100%
rename from data/sources/mailjet/metadata.json
rename to src/configurations/sources/GainsightPX/metadata.json
diff --git a/src/configurations/sources/GainsightPX/schema.json b/src/configurations/sources/GainsightPX/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/GainsightPX/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/mailjet/ui_config.json b/src/configurations/sources/GainsightPX/ui-config.json
similarity index 100%
rename from data/sources/mailjet/ui_config.json
rename to src/configurations/sources/GainsightPX/ui-config.json
diff --git a/src/configurations/sources/active_campaign/db-config.json b/src/configurations/sources/active_campaign/db-config.json
new file mode 100644
index 000000000..b0a4f3cca
--- /dev/null
+++ b/src/configurations/sources/active_campaign/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "active_campaign",
+ "category": "cloud",
+ "displayName": "Active campaign"
+}
diff --git a/data/sources/moengage/metadata.json b/src/configurations/sources/active_campaign/metadata.json
similarity index 100%
rename from data/sources/moengage/metadata.json
rename to src/configurations/sources/active_campaign/metadata.json
diff --git a/src/configurations/sources/active_campaign/schema.json b/src/configurations/sources/active_campaign/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/active_campaign/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/active_campaign/ui-config.json b/src/configurations/sources/active_campaign/ui-config.json
new file mode 100644
index 000000000..842286f81
--- /dev/null
+++ b/src/configurations/sources/active_campaign/ui-config.json
@@ -0,0 +1,38 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["apiKey"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "URL",
+ "value": "url",
+ "placeholder": "e.g https://rudderstack.api-us1.com",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/amp/db-config.json b/src/configurations/sources/amp/db-config.json
new file mode 100644
index 000000000..faa7e9169
--- /dev/null
+++ b/src/configurations/sources/amp/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "AMP",
+ "displayName": "AMP"
+}
diff --git a/data/sources/olark/metadata.json b/src/configurations/sources/amp/metadata.json
similarity index 100%
rename from data/sources/olark/metadata.json
rename to src/configurations/sources/amp/metadata.json
diff --git a/src/configurations/sources/amp/schema.json b/src/configurations/sources/amp/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/amp/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/moengage/ui_config.json b/src/configurations/sources/amp/ui-config.json
similarity index 100%
rename from data/sources/moengage/ui_config.json
rename to src/configurations/sources/amp/ui-config.json
diff --git a/src/configurations/sources/android/db-config.json b/src/configurations/sources/android/db-config.json
new file mode 100644
index 000000000..8ed6a5da5
--- /dev/null
+++ b/src/configurations/sources/android/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Android",
+ "displayName": "Android"
+}
diff --git a/data/sources/pagerduty/metadata.json b/src/configurations/sources/android/metadata.json
similarity index 100%
rename from data/sources/pagerduty/metadata.json
rename to src/configurations/sources/android/metadata.json
diff --git a/src/configurations/sources/android/schema.json b/src/configurations/sources/android/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/android/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/olark/ui_config.json b/src/configurations/sources/android/ui-config.json
similarity index 100%
rename from data/sources/olark/ui_config.json
rename to src/configurations/sources/android/ui-config.json
diff --git a/src/configurations/sources/appcenter/db-config.json b/src/configurations/sources/appcenter/db-config.json
new file mode 100644
index 000000000..fbf8ec57a
--- /dev/null
+++ b/src/configurations/sources/appcenter/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "Appcenter",
+ "category": "webhook",
+ "displayName": "App Center"
+}
diff --git a/data/sources/pipedream/metadata.json b/src/configurations/sources/appcenter/metadata.json
similarity index 100%
rename from data/sources/pipedream/metadata.json
rename to src/configurations/sources/appcenter/metadata.json
diff --git a/src/configurations/sources/appcenter/schema.json b/src/configurations/sources/appcenter/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/appcenter/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/pagerduty/ui_config.json b/src/configurations/sources/appcenter/ui-config.json
similarity index 100%
rename from data/sources/pagerduty/ui_config.json
rename to src/configurations/sources/appcenter/ui-config.json
diff --git a/src/configurations/sources/appsflyer/db-config.json b/src/configurations/sources/appsflyer/db-config.json
new file mode 100644
index 000000000..ebfc5c803
--- /dev/null
+++ b/src/configurations/sources/appsflyer/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "appsflyer",
+ "category": "webhook",
+ "displayName": "AppsFlyer"
+}
diff --git a/data/sources/refiner/metadata.json b/src/configurations/sources/appsflyer/metadata.json
similarity index 100%
rename from data/sources/refiner/metadata.json
rename to src/configurations/sources/appsflyer/metadata.json
diff --git a/src/configurations/sources/appsflyer/schema.json b/src/configurations/sources/appsflyer/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/appsflyer/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/pipedream/ui_config.json b/src/configurations/sources/appsflyer/ui-config.json
similarity index 100%
rename from data/sources/pipedream/ui_config.json
rename to src/configurations/sources/appsflyer/ui-config.json
diff --git a/src/configurations/sources/auth0/db-config.json b/src/configurations/sources/auth0/db-config.json
new file mode 100644
index 000000000..cd8157065
--- /dev/null
+++ b/src/configurations/sources/auth0/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "Auth0",
+ "category": "webhook",
+ "displayName": "Auth0"
+}
diff --git a/data/sources/satismeter/metadata.json b/src/configurations/sources/auth0/metadata.json
similarity index 100%
rename from data/sources/satismeter/metadata.json
rename to src/configurations/sources/auth0/metadata.json
diff --git a/src/configurations/sources/auth0/schema.json b/src/configurations/sources/auth0/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/auth0/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/refiner/ui_config.json b/src/configurations/sources/auth0/ui-config.json
similarity index 100%
rename from data/sources/refiner/ui_config.json
rename to src/configurations/sources/auth0/ui-config.json
diff --git a/src/configurations/sources/bigquery/db-config.json b/src/configurations/sources/bigquery/db-config.json
new file mode 100644
index 000000000..aff600473
--- /dev/null
+++ b/src/configurations/sources/bigquery/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "bigquery",
+ "category": "warehouse",
+ "displayName": "BigQuery",
+ "options": {
+ "syncBehaviours": ["upsert", "mirror"],
+ "isSqlModelSupported": true,
+ "isAudienceSupported": true
+ }
+}
diff --git a/src/configurations/sources/bigquery/metadata.json b/src/configurations/sources/bigquery/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/bigquery/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/bigquery/schema.json b/src/configurations/sources/bigquery/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/bigquery/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/bigquery/ui-config.json b/src/configurations/sources/bigquery/ui-config.json
new file mode 100644
index 000000000..29e241c64
--- /dev/null
+++ b/src/configurations/sources/bigquery/ui-config.json
@@ -0,0 +1,59 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["credentials"],
+ "docLinks": {
+ "grantPermissions": "https://docs.rudderstack.com/reverse-etl/google-bigquery/#granting-permissions",
+ "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/google-bigquery/#what-do-the-three-validations-under-verifying-credentials-imply",
+ "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/google-bigquery/#specifying-the-data-to-import",
+ "setupInstructions": "https://docs.rudderstack.com/reverse-etl/google-bigquery"
+ },
+ "schemaAlias": "Dataset",
+ "nameField": "project",
+ "fields": [
+ {
+ "type": "textareaInput",
+ "subType": "JSON",
+ "label": "Credentials",
+ "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your BigQuery database",
+ "value": "credentials",
+ "regex": ".*",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Project ID",
+ "labelNote": "GCP Project ID where your BigQuery database is located.",
+ "value": "project",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "infoTooltip": "Inferred from project_id field in the credentials settings.",
+ "addInAccountSummary": true,
+ "readOnly": true,
+ "obtainValueFromField": {
+ "name": "credentials",
+ "key": "project_id"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "Service account",
+ "value": "serviceAccount",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Email Address",
+ "required": true,
+ "infoTooltip": "Inferred from client_email field in the credentials settings.",
+ "addInAccountSummary": true,
+ "readOnly": true,
+ "obtainValueFromField": {
+ "name": "credentials",
+ "key": "client_email"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/bing_ads/db-config.json b/src/configurations/sources/bing_ads/db-config.json
new file mode 100644
index 000000000..c9e77221e
--- /dev/null
+++ b/src/configurations/sources/bing_ads/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "bing_ads",
+ "category": "cloud",
+ "displayName": "Bing ads"
+}
diff --git a/src/configurations/sources/bing_ads/metadata.json b/src/configurations/sources/bing_ads/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/bing_ads/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/bing_ads/schema.json b/src/configurations/sources/bing_ads/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/bing_ads/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/bing_ads/ui-config.json b/src/configurations/sources/bing_ads/ui-config.json
new file mode 100644
index 000000000..9497b10b2
--- /dev/null
+++ b/src/configurations/sources/bing_ads/ui-config.json
@@ -0,0 +1,51 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/bing_ads/info/accounts",
+ "label": "Customer Account",
+ "value": "customerAccountId",
+ "responseKey": "accounts",
+ "valueKey": "accountId",
+ "labelKey": "accountName",
+ "required": true
+ },
+ {
+ "type": "dynamicSelect",
+ "method": "get",
+ "url": "/cloudSources/info/roles/bing_ads/info/reports",
+ "label": "Report Name",
+ "value": "report.name",
+ "responseKey": "reports",
+ "required": true
+ },
+ {
+ "type": "dynamicSelect",
+ "method": "get",
+ "url": "/cloudSources/info/roles/bing_ads/info/columns/${preRequisiteValue}",
+ "label": "Report Columns",
+ "value": "report.columns",
+ "multiple": true,
+ "responseKey": "columns",
+ "valueKey": "name",
+ "labelKey": "name",
+ "required": true,
+ "mode": "multiple",
+ "preRequisiteField": {
+ "name": "report.name",
+ "includeValue": true
+ }
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/braze/db-config.json b/src/configurations/sources/braze/db-config.json
new file mode 100644
index 000000000..b73683596
--- /dev/null
+++ b/src/configurations/sources/braze/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "Braze",
+ "category": "webhook",
+ "displayName": "Braze"
+}
diff --git a/src/configurations/sources/braze/metadata.json b/src/configurations/sources/braze/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/braze/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/braze/schema.json b/src/configurations/sources/braze/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/braze/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/data/sources/satismeter/ui_config.json b/src/configurations/sources/braze/ui-config.json
similarity index 100%
rename from data/sources/satismeter/ui_config.json
rename to src/configurations/sources/braze/ui-config.json
diff --git a/src/configurations/sources/canny/db-config.json b/src/configurations/sources/canny/db-config.json
new file mode 100644
index 000000000..b3d081636
--- /dev/null
+++ b/src/configurations/sources/canny/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "canny",
+ "category": "webhook",
+ "displayName": "Canny"
+}
diff --git a/src/configurations/sources/canny/metadata.json b/src/configurations/sources/canny/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/canny/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/canny/schema.json b/src/configurations/sources/canny/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/canny/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/canny/ui-config.json b/src/configurations/sources/canny/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/canny/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/clickhouse/db-config.json b/src/configurations/sources/clickhouse/db-config.json
new file mode 100644
index 000000000..c9d500e12
--- /dev/null
+++ b/src/configurations/sources/clickhouse/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "clickhouse",
+ "category": "warehouse",
+ "displayName": "ClickHouse",
+ "options": {
+ "isCredentialsValidationSupported": true
+ }
+}
diff --git a/src/configurations/sources/clickhouse/metadata.json b/src/configurations/sources/clickhouse/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/clickhouse/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/clickhouse/schema.json b/src/configurations/sources/clickhouse/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/clickhouse/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/clickhouse/ui-config.json b/src/configurations/sources/clickhouse/ui-config.json
new file mode 100644
index 000000000..4f27dddae
--- /dev/null
+++ b/src/configurations/sources/clickhouse/ui-config.json
@@ -0,0 +1,92 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["password"],
+ "docLinks": {
+ "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/clickhouse/#specifying-the-data-to-import",
+ "setupInstructions": "https://docs.rudderstack.com/reverse-etl/clickhouse"
+ },
+ "nameField": "user",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "inputFieldType": "number",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "dbname",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "inputFieldType": "password",
+ "regex": ".*",
+ "required": false,
+ "secret": true
+ },
+ {
+ "type": "checkbox",
+ "label": "Secure",
+ "value": "secure",
+ "default": false
+ },
+ {
+ "type": "checkbox",
+ "preRequisiteField": {
+ "name": "secure",
+ "selectedValue": true
+ },
+ "label": "Skip verify",
+ "value": "skipVerify",
+ "default": false,
+ "footerNote": "If you are using self signed certificates set this field to true"
+ },
+ {
+ "type": "textareaInput",
+ "preRequisiteField": {
+ "name": "secure",
+ "selectedValue": true
+ },
+ "label": "CA certificate",
+ "value": "caCertificate",
+ "regex": ".*",
+ "required": false,
+ "placeholder": "CA Certificate",
+ "trim": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/cordova/db-config.json b/src/configurations/sources/cordova/db-config.json
new file mode 100644
index 000000000..12c39f29e
--- /dev/null
+++ b/src/configurations/sources/cordova/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Cordova",
+ "displayName": "Cordova"
+}
diff --git a/src/configurations/sources/cordova/metadata.json b/src/configurations/sources/cordova/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/cordova/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/cordova/schema.json b/src/configurations/sources/cordova/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/cordova/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/cordova/ui-config.json b/src/configurations/sources/cordova/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/cordova/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/customerio/db-config.json b/src/configurations/sources/customerio/db-config.json
new file mode 100644
index 000000000..1d9adf660
--- /dev/null
+++ b/src/configurations/sources/customerio/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "Customerio",
+ "category": "webhook",
+ "displayName": "Customerio"
+}
diff --git a/src/configurations/sources/customerio/metadata.json b/src/configurations/sources/customerio/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/customerio/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/customerio/schema.json b/src/configurations/sources/customerio/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/customerio/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/customerio/ui-config.json b/src/configurations/sources/customerio/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/customerio/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/databricks/db-config.json b/src/configurations/sources/databricks/db-config.json
new file mode 100644
index 000000000..dcf354a1c
--- /dev/null
+++ b/src/configurations/sources/databricks/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "databricks",
+ "category": "warehouse",
+ "displayName": "Databricks",
+ "options": {
+ "syncBehaviours": ["upsert"],
+ "isSqlModelSupported": false,
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/databricks/metadata.json b/src/configurations/sources/databricks/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/databricks/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/databricks/schema.json b/src/configurations/sources/databricks/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/databricks/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/databricks/ui-config.json b/src/configurations/sources/databricks/ui-config.json
new file mode 100644
index 000000000..4f8d7c2e0
--- /dev/null
+++ b/src/configurations/sources/databricks/ui-config.json
@@ -0,0 +1,57 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["token"],
+ "docLinks": {
+ "grantPermissions": "https://www.rudderstack.com/docs/reverse-etl/databricks/#granting-permissions",
+ "verifyingCredentials": "https://www.rudderstack.com/docs/reverse-etl/databricks/#what-do-the-three-validations-under-verifying-credentials-imply",
+ "jsonMapperUseInstructions": "https://www.rudderstack.com/docs/reverse-etl/databricks/#specifying-the-data-to-import",
+ "setupInstructions": "https://www.rudderstack.com/docs/reverse-etl/databricks"
+ },
+ "nameField": "host",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": false,
+ "inputFieldType": "number"
+ },
+ {
+ "type": "textInput",
+ "label": "Path",
+ "value": "path",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Token",
+ "value": "token",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": false,
+ "secret": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/dotnet/db-config.json b/src/configurations/sources/dotnet/db-config.json
new file mode 100644
index 000000000..29eb39740
--- /dev/null
+++ b/src/configurations/sources/dotnet/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "DotNet",
+ "displayName": ".Net"
+}
diff --git a/src/configurations/sources/dotnet/metadata.json b/src/configurations/sources/dotnet/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/dotnet/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/dotnet/schema.json b/src/configurations/sources/dotnet/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/dotnet/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/dotnet/ui-config.json b/src/configurations/sources/dotnet/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/dotnet/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/extole/db-config.json b/src/configurations/sources/extole/db-config.json
new file mode 100644
index 000000000..84166498c
--- /dev/null
+++ b/src/configurations/sources/extole/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "Extole",
+ "category": "webhook",
+ "displayName": "Extole"
+}
diff --git a/src/configurations/sources/extole/metadata.json b/src/configurations/sources/extole/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/extole/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/extole/schema.json b/src/configurations/sources/extole/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/extole/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/extole/ui-config.json b/src/configurations/sources/extole/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/extole/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/facebook_ads/db_config.json b/src/configurations/sources/facebook_ads/db-config.json
similarity index 100%
rename from data/sources/facebook_ads/db_config.json
rename to src/configurations/sources/facebook_ads/db-config.json
diff --git a/src/configurations/sources/facebook_ads/metadata.json b/src/configurations/sources/facebook_ads/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/facebook_ads/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/facebook_ads/schema.json b/src/configurations/sources/facebook_ads/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/facebook_ads/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/facebook_ads/ui-config.json b/src/configurations/sources/facebook_ads/ui-config.json
new file mode 100644
index 000000000..f8095e692
--- /dev/null
+++ b/src/configurations/sources/facebook_ads/ui-config.json
@@ -0,0 +1,109 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/facebook_ads/info/accounts",
+ "label": "Page",
+ "labelKey": "name",
+ "valueKey": "account_id",
+ "value": "account_id",
+ "responseKey": "data",
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Historical data",
+ "value": "first_time_date_preset",
+ "options": [
+ {
+ "name": "Last 2 years",
+ "value": "last_2_years"
+ },
+ {
+ "name": "Last 1 year",
+ "value": "last_1_year"
+ },
+ {
+ "name": "Last 6 months",
+ "value": "last_6_months"
+ },
+ {
+ "name": "Last 90 days",
+ "value": "last_90_days"
+ },
+ {
+ "name": "Last 30 days",
+ "value": "last_30_days"
+ },
+ {
+ "name": "Last 28 days",
+ "value": "last_28_days"
+ },
+ {
+ "name": "Last 14 days",
+ "value": "last_14_days"
+ },
+ {
+ "name": "Last 7 days",
+ "value": "last_7_days"
+ },
+ {
+ "name": "Last 3 days",
+ "value": "last_3_days"
+ }
+ ],
+ "defaultOption": {
+ "name": "Last 14 days",
+ "value": "last_14_days"
+ },
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Attribution window",
+ "value": "date_preset",
+ "options": [
+ {
+ "name": "Last 90 days",
+ "value": "last_90_days"
+ },
+ {
+ "name": "Last 30 days",
+ "value": "last_30_days"
+ },
+ {
+ "name": "Last 28 days",
+ "value": "last_28_days"
+ },
+ {
+ "name": "Last 14 days",
+ "value": "last_14_days"
+ },
+ {
+ "name": "Last 7 days",
+ "value": "last_7_days"
+ },
+ {
+ "name": "Last 3 days",
+ "value": "last_3_days"
+ }
+ ],
+ "defaultOption": {
+ "name": "Last 3 days",
+ "value": "last_3_days"
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/flutter/db-config.json b/src/configurations/sources/flutter/db-config.json
new file mode 100644
index 000000000..edb160934
--- /dev/null
+++ b/src/configurations/sources/flutter/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Flutter",
+ "displayName": "Flutter"
+}
diff --git a/src/configurations/sources/flutter/metadata.json b/src/configurations/sources/flutter/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/flutter/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/flutter/schema.json b/src/configurations/sources/flutter/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/flutter/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/flutter/ui-config.json b/src/configurations/sources/flutter/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/flutter/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/freshdesk/db-config.json b/src/configurations/sources/freshdesk/db-config.json
new file mode 100644
index 000000000..a58918234
--- /dev/null
+++ b/src/configurations/sources/freshdesk/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "freshdesk",
+ "category": "cloud",
+ "displayName": "Freshdesk",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/freshdesk/metadata.json b/src/configurations/sources/freshdesk/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/freshdesk/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/freshdesk/schema.json b/src/configurations/sources/freshdesk/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/freshdesk/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/freshdesk/ui-config.json b/src/configurations/sources/freshdesk/ui-config.json
new file mode 100644
index 000000000..76940eaa0
--- /dev/null
+++ b/src/configurations/sources/freshdesk/ui-config.json
@@ -0,0 +1,35 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["apiKey"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "Subdomain",
+ "value": "subdomain",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/go/db-config.json b/src/configurations/sources/go/db-config.json
new file mode 100644
index 000000000..5566be666
--- /dev/null
+++ b/src/configurations/sources/go/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Go",
+ "displayName": "Go"
+}
diff --git a/src/configurations/sources/go/metadata.json b/src/configurations/sources/go/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/go/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/go/schema.json b/src/configurations/sources/go/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/go/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/go/ui-config.json b/src/configurations/sources/go/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/go/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/google_adwords/db-config.json b/src/configurations/sources/google_adwords/db-config.json
new file mode 100644
index 000000000..6b092c4b7
--- /dev/null
+++ b/src/configurations/sources/google_adwords/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "google_adwords",
+ "category": "cloud",
+ "displayName": "Google AdWords",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/google_adwords/metadata.json b/src/configurations/sources/google_adwords/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/google_adwords/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/google_adwords/schema.json b/src/configurations/sources/google_adwords/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/google_adwords/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/google_adwords/ui-config.json b/src/configurations/sources/google_adwords/ui-config.json
new file mode 100644
index 000000000..4f8584c30
--- /dev/null
+++ b/src/configurations/sources/google_adwords/ui-config.json
@@ -0,0 +1,63 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/google_adwords/info/customerIds",
+ "label": "Customer ID",
+ "labelKey": "name",
+ "valueKey": "id",
+ "value": "customerId",
+ "required": true
+ },
+ {
+ "type": "datePicker",
+ "label": "Start date",
+ "value": "startDate",
+ "format": "YYYY-MM-DD",
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Conversion window",
+ "value": "conversionWindow",
+ "options": [
+ {
+ "name": "Last 30 days",
+ "value": 30
+ },
+ {
+ "name": "Last 28 days",
+ "value": 28
+ },
+ {
+ "name": "Last 14 days",
+ "value": 14
+ },
+ {
+ "name": "Last 7 days",
+ "value": 7
+ },
+ {
+ "name": "Last 3 days",
+ "value": 3
+ }
+ ],
+ "defaultOption": {
+ "name": "Last 30 days",
+ "value": 30
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/google_analytics/db-config.json b/src/configurations/sources/google_analytics/db-config.json
new file mode 100644
index 000000000..6b69f2149
--- /dev/null
+++ b/src/configurations/sources/google_analytics/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "google_analytics",
+ "category": "cloud",
+ "displayName": "Google Analytics",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/google_analytics/metadata.json b/src/configurations/sources/google_analytics/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/google_analytics/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/google_analytics/schema.json b/src/configurations/sources/google_analytics/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/google_analytics/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/google_analytics/ui-config.json b/src/configurations/sources/google_analytics/ui-config.json
new file mode 100644
index 000000000..c09038ace
--- /dev/null
+++ b/src/configurations/sources/google_analytics/ui-config.json
@@ -0,0 +1,74 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/google_analytics/info/views",
+ "label": "View",
+ "labelKey": "name",
+ "valueKey": "id",
+ "responseKey": "views",
+ "value": "viewId",
+ "required": true
+ },
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/google_analytics/info/columns",
+ "label": "Dimensions",
+ "labelKey": "name",
+ "valueKey": "id",
+ "responseKey": "dimensions",
+ "value": "dimensions",
+ "required": true,
+ "preRequisiteField": {
+ "name": "viewId",
+ "includeValue": true,
+ "includeToRequest": {
+ "transformKey": "id"
+ }
+ },
+ "mode": "multiple"
+ },
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/google_analytics/info/columns",
+ "label": "Metrics",
+ "labelKey": "name",
+ "valueKey": "id",
+ "responseKey": "metrics",
+ "value": "metrics",
+ "required": true,
+ "preRequisiteField": {
+ "name": "viewId",
+ "includeValue": true,
+ "includeToRequest": {
+ "transformKey": "id"
+ }
+ },
+ "mode": "multiple"
+ },
+ {
+ "type": "datePicker",
+ "label": "Start from date",
+ "value": "dateSince",
+ "format": "YYYY-MM-DD",
+ "description": "Earliest report date",
+ "preRequisiteField": {
+ "name": "viewId"
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/google_search_console/db-config.json b/src/configurations/sources/google_search_console/db-config.json
new file mode 100644
index 000000000..ef9d258ed
--- /dev/null
+++ b/src/configurations/sources/google_search_console/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "google_search_console",
+ "category": "cloud",
+ "displayName": "Google Search Console",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/google_search_console/metadata.json b/src/configurations/sources/google_search_console/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/google_search_console/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/google_search_console/schema.json b/src/configurations/sources/google_search_console/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/google_search_console/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/google_search_console/ui-config.json b/src/configurations/sources/google_search_console/ui-config.json
new file mode 100644
index 000000000..98e8b9c08
--- /dev/null
+++ b/src/configurations/sources/google_search_console/ui-config.json
@@ -0,0 +1,48 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Site URL",
+ "value": "siteUrl",
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Dimensions",
+ "value": "date_preset",
+ "mode": "multiple",
+ "options": [
+ {
+ "name": "country",
+ "value": "country"
+ },
+ {
+ "name": "device",
+ "value": "device"
+ },
+ {
+ "name": "page",
+ "value": "page"
+ }
+ ],
+ "required": true
+ },
+ {
+ "type": "datePicker",
+ "label": "Start from date",
+ "value": "dateSince",
+ "format": "YYYY-MM-DD",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/google_sheets/db-config.json b/src/configurations/sources/google_sheets/db-config.json
new file mode 100644
index 000000000..a683e17f2
--- /dev/null
+++ b/src/configurations/sources/google_sheets/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "google_sheets",
+ "category": "cloud",
+ "displayName": "Google Sheets"
+}
diff --git a/src/configurations/sources/google_sheets/metadata.json b/src/configurations/sources/google_sheets/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/google_sheets/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/google_sheets/schema.json b/src/configurations/sources/google_sheets/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/google_sheets/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/google_sheets/ui-config.json b/src/configurations/sources/google_sheets/ui-config.json
new file mode 100644
index 000000000..57378f01b
--- /dev/null
+++ b/src/configurations/sources/google_sheets/ui-config.json
@@ -0,0 +1,66 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "dynamicSelect",
+ "method": "post",
+ "url": "/cloudSources/info/roles/google_sheets/info/sheets",
+ "label": "SpreadSheet",
+ "labelKey": "filename",
+ "valueKey": "id",
+ "responseKey": "sheets",
+ "value": "spreadsheet",
+ "showSearch": true,
+ "required": true
+ },
+ {
+ "type": "dynamicSelect",
+ "label": "Worksheet",
+ "value": "worksheet",
+ "responseKey": "sheets",
+ "showSearch": true,
+ "valueKey": "properties.title",
+ "labelKey": "properties.title",
+ "method": "post",
+ "url": "/cloudSources/info/roles/google_sheets/info/sheets/${preRequisiteValue}",
+ "required": true,
+ "preRequisiteField": {
+ "name": "spreadsheet",
+ "includeValue": true
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "Header row",
+ "inputFieldType": "number",
+ "value": "header_offset",
+ "default": 1,
+ "min": 1,
+ "required": true,
+ "disabledNormalMode": true,
+ "preRequisiteField": {
+ "name": "spreadsheet"
+ }
+ },
+ {
+ "type": "textInput",
+ "inputFieldType": "number",
+ "min": 1,
+ "label": "First data row",
+ "value": "top_row_offset",
+ "disabledNormalMode": true,
+ "preRequisiteField": {
+ "name": "spreadsheet"
+ }
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/http/db-config.json b/src/configurations/sources/http/db-config.json
new file mode 100644
index 000000000..5c94af8c3
--- /dev/null
+++ b/src/configurations/sources/http/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "HTTP",
+ "displayName": "HTTP"
+}
diff --git a/src/configurations/sources/http/metadata.json b/src/configurations/sources/http/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/http/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/http/schema.json b/src/configurations/sources/http/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/http/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/http/ui-config.json b/src/configurations/sources/http/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/http/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/hubspot/db-config.json b/src/configurations/sources/hubspot/db-config.json
new file mode 100644
index 000000000..0695d3f7a
--- /dev/null
+++ b/src/configurations/sources/hubspot/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "hubspot",
+ "category": "cloud",
+ "displayName": "Hubspot",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/hubspot/metadata.json b/src/configurations/sources/hubspot/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/hubspot/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/hubspot/schema.json b/src/configurations/sources/hubspot/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/hubspot/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/hubspot/ui-config.json b/src/configurations/sources/hubspot/ui-config.json
new file mode 100644
index 000000000..ecf87872d
--- /dev/null
+++ b/src/configurations/sources/hubspot/ui-config.json
@@ -0,0 +1,33 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Hubspot software",
+ "value": "role",
+ "required": true,
+ "options": [
+ {
+ "name": "Marketing",
+ "value": "hubspot"
+ },
+ {
+ "name": "CRM",
+ "value": "hubspot_crm"
+ }
+ ],
+ "defaultOption": {
+ "name": "Marketing",
+ "value": "hubspot"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/hubspot_crm/db-config.json b/src/configurations/sources/hubspot_crm/db-config.json
new file mode 100644
index 000000000..c1c9194ff
--- /dev/null
+++ b/src/configurations/sources/hubspot_crm/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "hubspot_crm",
+ "category": "cloud",
+ "displayName": "Hubspot CRM",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/hubspot_crm/metadata.json b/src/configurations/sources/hubspot_crm/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/hubspot_crm/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/hubspot_crm/schema.json b/src/configurations/sources/hubspot_crm/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/hubspot_crm/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/hubspot_crm/ui-config.json b/src/configurations/sources/hubspot_crm/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/hubspot_crm/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/intercom/db-config.json b/src/configurations/sources/intercom/db-config.json
new file mode 100644
index 000000000..45c31382a
--- /dev/null
+++ b/src/configurations/sources/intercom/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "intercom",
+ "category": "cloud",
+ "displayName": "Intercom",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/intercom/metadata.json b/src/configurations/sources/intercom/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/intercom/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/intercom/schema.json b/src/configurations/sources/intercom/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/intercom/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/intercom/ui-config.json b/src/configurations/sources/intercom/ui-config.json
new file mode 100644
index 000000000..a5ba1b3e2
--- /dev/null
+++ b/src/configurations/sources/intercom/ui-config.json
@@ -0,0 +1,7 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ }
+ }
+}
diff --git a/src/configurations/sources/ios/db-config.json b/src/configurations/sources/ios/db-config.json
new file mode 100644
index 000000000..2d62f7c24
--- /dev/null
+++ b/src/configurations/sources/ios/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "iOS",
+ "displayName": "iOS"
+}
diff --git a/src/configurations/sources/ios/metadata.json b/src/configurations/sources/ios/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/ios/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/ios/schema.json b/src/configurations/sources/ios/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/ios/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/ios/ui-config.json b/src/configurations/sources/ios/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/ios/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/iterable/db-config.json b/src/configurations/sources/iterable/db-config.json
new file mode 100644
index 000000000..1e28ced19
--- /dev/null
+++ b/src/configurations/sources/iterable/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "iterable",
+ "category": "webhook",
+ "displayName": "Iterable"
+}
diff --git a/src/configurations/sources/iterable/metadata.json b/src/configurations/sources/iterable/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/iterable/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/iterable/schema.json b/src/configurations/sources/iterable/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/iterable/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/iterable/ui-config.json b/src/configurations/sources/iterable/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/iterable/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/java/db-config.json b/src/configurations/sources/java/db-config.json
new file mode 100644
index 000000000..fa2c20a87
--- /dev/null
+++ b/src/configurations/sources/java/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Java",
+ "displayName": "Java"
+}
diff --git a/src/configurations/sources/java/metadata.json b/src/configurations/sources/java/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/java/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/java/schema.json b/src/configurations/sources/java/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/java/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/java/ui-config.json b/src/configurations/sources/java/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/java/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/javascript/db-config.json b/src/configurations/sources/javascript/db-config.json
new file mode 100644
index 000000000..0fd3d6912
--- /dev/null
+++ b/src/configurations/sources/javascript/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Javascript",
+ "displayName": "Javascript"
+}
diff --git a/src/configurations/sources/javascript/metadata.json b/src/configurations/sources/javascript/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/javascript/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/javascript/schema.json b/src/configurations/sources/javascript/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/javascript/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/javascript/ui-config.json b/src/configurations/sources/javascript/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/javascript/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/looker/db-config.json b/src/configurations/sources/looker/db-config.json
new file mode 100644
index 000000000..e827cd393
--- /dev/null
+++ b/src/configurations/sources/looker/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Looker",
+ "displayName": "Looker"
+}
diff --git a/src/configurations/sources/looker/metadata.json b/src/configurations/sources/looker/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/looker/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/looker/schema.json b/src/configurations/sources/looker/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/looker/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/looker/ui-config.json b/src/configurations/sources/looker/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/looker/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/mailchimp/db-config.json b/src/configurations/sources/mailchimp/db-config.json
new file mode 100644
index 000000000..1eb1548be
--- /dev/null
+++ b/src/configurations/sources/mailchimp/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "mailchimp",
+ "category": "cloud",
+ "displayName": "Mailchimp"
+}
diff --git a/src/configurations/sources/mailchimp/metadata.json b/src/configurations/sources/mailchimp/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/mailchimp/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/mailchimp/schema.json b/src/configurations/sources/mailchimp/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/mailchimp/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/mailchimp/ui-config.json b/src/configurations/sources/mailchimp/ui-config.json
new file mode 100644
index 000000000..1d07598c0
--- /dev/null
+++ b/src/configurations/sources/mailchimp/ui-config.json
@@ -0,0 +1,49 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Earliest campaign year",
+ "value": "firstTimeFetchCampaignsSinceYear",
+ "footerNote": "Fetch monthly reports starting from this year.",
+ "required": true,
+ "options": [2020, 2019, 2018, 2017, 2016, 2015],
+ "default": 2019
+ },
+ {
+ "type": "singleSelect",
+ "label": "Campaign fetch period",
+ "value": "fetchCampaignsDaysAgo",
+ "footerNote": "Starting month for each monthly report.",
+ "required": true,
+ "options": [
+ {
+ "name": "1 day",
+ "value": 1
+ },
+ {
+ "name": "1 week",
+ "value": 7
+ },
+ {
+ "name": "2 weeks",
+ "value": 14
+ },
+ {
+ "name": "1 month",
+ "value": 30
+ }
+ ],
+ "default": 1
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/data/sources/mailjet/db_config.json b/src/configurations/sources/mailjet/db-config.json
similarity index 100%
rename from data/sources/mailjet/db_config.json
rename to src/configurations/sources/mailjet/db-config.json
diff --git a/src/configurations/sources/mailjet/metadata.json b/src/configurations/sources/mailjet/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/mailjet/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/mailjet/schema.json b/src/configurations/sources/mailjet/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/mailjet/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/mailjet/ui-config.json b/src/configurations/sources/mailjet/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/mailjet/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/mailmodo/db-config.json b/src/configurations/sources/mailmodo/db-config.json
new file mode 100644
index 000000000..ef4a8b24c
--- /dev/null
+++ b/src/configurations/sources/mailmodo/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "mailmodo",
+ "category": "webhook",
+ "displayName": "Mailmodo"
+}
diff --git a/src/configurations/sources/mailmodo/metadata.json b/src/configurations/sources/mailmodo/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/mailmodo/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/mailmodo/schema.json b/src/configurations/sources/mailmodo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/mailmodo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/mailmodo/ui-config.json b/src/configurations/sources/mailmodo/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/mailmodo/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/marketo/db-config.json b/src/configurations/sources/marketo/db-config.json
new file mode 100644
index 000000000..a35162892
--- /dev/null
+++ b/src/configurations/sources/marketo/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "marketo",
+ "category": "cloud",
+ "displayName": "Marketo"
+}
diff --git a/src/configurations/sources/marketo/metadata.json b/src/configurations/sources/marketo/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/marketo/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/marketo/schema.json b/src/configurations/sources/marketo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/marketo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/marketo/ui-config.json b/src/configurations/sources/marketo/ui-config.json
new file mode 100644
index 000000000..ba0c0428d
--- /dev/null
+++ b/src/configurations/sources/marketo/ui-config.json
@@ -0,0 +1,67 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["clientSecret"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "Marketo Client ID",
+ "value": "clientId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: client id"
+ },
+ {
+ "type": "textInput",
+ "label": "Marketo Client Secret",
+ "value": "clientSecret",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: client secret",
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Marketo Munchkin Account ID",
+ "value": "munchkinId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: munchkin account id",
+ "secret": true
+ }
+ ]
+ }
+ ]
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "datePicker",
+ "label": "Start date",
+ "value": "startDate",
+ "format": "YYYY-MM-DD",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/mixpanel/db-config.json b/src/configurations/sources/mixpanel/db-config.json
new file mode 100644
index 000000000..67d99f770
--- /dev/null
+++ b/src/configurations/sources/mixpanel/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "mixpanel",
+ "category": "cloud",
+ "displayName": "Mixpanel",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/mixpanel/metadata.json b/src/configurations/sources/mixpanel/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/mixpanel/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/mixpanel/schema.json b/src/configurations/sources/mixpanel/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/mixpanel/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/mixpanel/ui-config.json b/src/configurations/sources/mixpanel/ui-config.json
new file mode 100644
index 000000000..51d151461
--- /dev/null
+++ b/src/configurations/sources/mixpanel/ui-config.json
@@ -0,0 +1,464 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["apisecret"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apikey",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "API Secret",
+ "value": "apisecret",
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "showSearch": true,
+ "label": "Project timezone",
+ "value": "timezone",
+ "required": true,
+ "options": [
+ "US/Alaska",
+ "US/Arizona",
+ "US/Central",
+ "US/Eastern",
+ "US/Hawaii",
+ "US/Mountain",
+ "US/Pacific",
+ "Africa/Abidjan",
+ "Africa/Accra",
+ "Africa/Addis_Ababa",
+ "Africa/Algiers",
+ "Africa/Asmara",
+ "Africa/Bamako",
+ "Africa/Bangui",
+ "Africa/Banjul",
+ "Africa/Bissau",
+ "Africa/Blantyre",
+ "Africa/Brazzaville",
+ "Africa/Bujumbura",
+ "Africa/Cairo",
+ "Africa/Casablanca",
+ "Africa/Ceuta",
+ "Africa/Conakry",
+ "Africa/Dakar",
+ "Africa/Dar_es_Salaam",
+ "Africa/Djibouti",
+ "Africa/Douala",
+ "Africa/El_Aaiun",
+ "Africa/Freetown",
+ "Africa/Gaborone",
+ "Africa/Harare",
+ "Africa/Johannesburg",
+ "Africa/Kampala",
+ "Africa/Khartoum",
+ "Africa/Kigali",
+ "Africa/Kinshasa",
+ "Africa/Lagos",
+ "Africa/Libreville",
+ "Africa/Lome",
+ "Africa/Luanda",
+ "Africa/Lubumbashi",
+ "Africa/Lusaka",
+ "Africa/Malabo",
+ "Africa/Maputo",
+ "Africa/Maseru",
+ "Africa/Mbabane",
+ "Africa/Mogadishu",
+ "Africa/Monrovia",
+ "Africa/Nairobi",
+ "Africa/Ndjamena",
+ "Africa/Niamey",
+ "Africa/Nouakchott",
+ "Africa/Ouagadougou",
+ "Africa/Porto-Novo",
+ "Africa/Sao_Tome",
+ "Africa/Tripoli",
+ "Africa/Tunis",
+ "Africa/Windhoek",
+ "America/Adak",
+ "America/Anchorage",
+ "America/Anguilla",
+ "America/Antigua",
+ "America/Araguaina",
+ "America/Argentina/Buenos_Aires",
+ "America/Argentina/Catamarca",
+ "America/Argentina/Cordoba",
+ "America/Argentina/Jujuy",
+ "America/Argentina/La_Rioja",
+ "America/Argentina/Mendoza",
+ "America/Argentina/Rio_Gallegos",
+ "America/Argentina/Salta",
+ "America/Argentina/San_Juan",
+ "America/Argentina/San_Luis",
+ "America/Argentina/Tucuman",
+ "America/Argentina/Ushuaia",
+ "America/Aruba",
+ "America/Asuncion",
+ "America/Atikokan",
+ "America/Bahia",
+ "America/Bahia_Banderas",
+ "America/Barbados",
+ "America/Belem",
+ "America/Belize",
+ "America/Blanc-Sablon",
+ "America/Boa_Vista",
+ "America/Bogota",
+ "America/Boise",
+ "America/Cambridge_Bay",
+ "America/Campo_Grande",
+ "America/Cancun",
+ "America/Caracas",
+ "America/Cayenne",
+ "America/Cayman",
+ "America/Chicago",
+ "America/Chihuahua",
+ "America/Costa_Rica",
+ "America/Cuiaba",
+ "America/Curacao",
+ "America/Danmarkshavn",
+ "America/Dawson",
+ "America/Dawson_Creek",
+ "America/Denver",
+ "America/Detroit",
+ "America/Dominica",
+ "America/Edmonton",
+ "America/Eirunepe",
+ "America/El_Salvador",
+ "America/Fortaleza",
+ "America/Glace_Bay",
+ "America/Godthab",
+ "America/Goose_Bay",
+ "America/Grand_Turk",
+ "America/Grenada",
+ "America/Guadeloupe",
+ "America/Guatemala",
+ "America/Guayaquil",
+ "America/Guyana",
+ "America/Halifax",
+ "America/Havana",
+ "America/Hermosillo",
+ "America/Indiana/Indianapolis",
+ "America/Indiana/Knox",
+ "America/Indiana/Marengo",
+ "America/Indiana/Petersburg",
+ "America/Indiana/Tell_City",
+ "America/Indiana/Vevay",
+ "America/Indiana/Vincennes",
+ "America/Indiana/Winamac",
+ "America/Inuvik",
+ "America/Iqaluit",
+ "America/Jamaica",
+ "America/Juneau",
+ "America/Kentucky/Louisville",
+ "America/Kentucky/Monticello",
+ "America/La_Paz",
+ "America/Lima",
+ "America/Los_Angeles",
+ "America/Maceio",
+ "America/Managua",
+ "America/Manaus",
+ "America/Martinique",
+ "America/Matamoros",
+ "America/Mazatlan",
+ "America/Menominee",
+ "America/Merida",
+ "America/Mexico_City",
+ "America/Miquelon",
+ "America/Moncton",
+ "America/Monterrey",
+ "America/Montevideo",
+ "America/Montreal",
+ "America/Montserrat",
+ "America/Nassau",
+ "America/New_York",
+ "America/Nipigon",
+ "America/Nome",
+ "America/Noronha",
+ "America/North_Dakota/Center",
+ "America/North_Dakota/New_Salem",
+ "America/Ojinaga",
+ "America/Panama",
+ "America/Pangnirtung",
+ "America/Paramaribo",
+ "America/Phoenix",
+ "America/Port-au-Prince",
+ "America/Porto_Velho",
+ "America/Port_of_Spain",
+ "America/Puerto_Rico",
+ "America/Rainy_River",
+ "America/Rankin_Inlet",
+ "America/Recife",
+ "America/Regina",
+ "America/Resolute",
+ "America/Rio_Branco",
+ "America/Santarem",
+ "America/Santa_Isabel",
+ "America/Santiago",
+ "America/Santo_Domingo",
+ "America/Sao_Paulo",
+ "America/Scoresbysund",
+ "America/St_Johns",
+ "America/St_Kitts",
+ "America/St_Lucia",
+ "America/St_Thomas",
+ "America/St_Vincent",
+ "America/Swift_Current",
+ "America/Tegucigalpa",
+ "America/Thule",
+ "America/Thunder_Bay",
+ "America/Tijuana",
+ "America/Toronto",
+ "America/Tortola",
+ "America/Vancouver",
+ "America/Whitehorse",
+ "America/Winnipeg",
+ "America/Yakutat",
+ "America/Yellowknife",
+ "Antarctica/Casey",
+ "Antarctica/Davis",
+ "Antarctica/DumontDUrville",
+ "Antarctica/Macquarie",
+ "Antarctica/Mawson",
+ "Antarctica/McMurdo",
+ "Antarctica/Palmer",
+ "Antarctica/Rothera",
+ "Antarctica/Syowa",
+ "Antarctica/Vostok",
+ "Asia/Aden",
+ "Asia/Almaty",
+ "Asia/Amman",
+ "Asia/Anadyr",
+ "Asia/Aqtau",
+ "Asia/Aqtobe",
+ "Asia/Ashgabat",
+ "Asia/Baghdad",
+ "Asia/Bahrain",
+ "Asia/Baku",
+ "Asia/Bangkok",
+ "Asia/Beirut",
+ "Asia/Bishkek",
+ "Asia/Brunei",
+ "Asia/Choibalsan",
+ "Asia/Chongqing",
+ "Asia/Colombo",
+ "Asia/Damascus",
+ "Asia/Dhaka",
+ "Asia/Dili",
+ "Asia/Dubai",
+ "Asia/Dushanbe",
+ "Asia/Gaza",
+ "Asia/Harbin",
+ "Asia/Hong_Kong",
+ "Asia/Hovd",
+ "Asia/Ho_Chi_Minh",
+ "Asia/Irkutsk",
+ "Asia/Jakarta",
+ "Asia/Jayapura",
+ "Asia/Jerusalem",
+ "Asia/Kabul",
+ "Asia/Kamchatka",
+ "Asia/Karachi",
+ "Asia/Kashgar",
+ "Asia/Kathmandu",
+ "Asia/Kolkata",
+ "Asia/Krasnoyarsk",
+ "Asia/Kuala_Lumpur",
+ "Asia/Kuching",
+ "Asia/Kuwait",
+ "Asia/Macau",
+ "Asia/Magadan",
+ "Asia/Makassar",
+ "Asia/Manila",
+ "Asia/Muscat",
+ "Asia/Nicosia",
+ "Asia/Novokuznetsk",
+ "Asia/Novosibirsk",
+ "Asia/Omsk",
+ "Asia/Oral",
+ "Asia/Phnom_Penh",
+ "Asia/Pontianak",
+ "Asia/Pyongyang",
+ "Asia/Qatar",
+ "Asia/Qyzylorda",
+ "Asia/Rangoon",
+ "Asia/Riyadh",
+ "Asia/Sakhalin",
+ "Asia/Samarkand",
+ "Asia/Seoul",
+ "Asia/Shanghai",
+ "Asia/Singapore",
+ "Asia/Taipei",
+ "Asia/Tashkent",
+ "Asia/Tbilisi",
+ "Asia/Tehran",
+ "Asia/Thimphu",
+ "Asia/Tokyo",
+ "Asia/Ulaanbaatar",
+ "Asia/Urumqi",
+ "Asia/Vientiane",
+ "Asia/Vladivostok",
+ "Asia/Yakutsk",
+ "Asia/Yekaterinburg",
+ "Asia/Yerevan",
+ "Atlantic/Azores",
+ "Atlantic/Bermuda",
+ "Atlantic/Canary",
+ "Atlantic/Cape_Verde",
+ "Atlantic/Faroe",
+ "Atlantic/Madeira",
+ "Atlantic/Reykjavik",
+ "Atlantic/South_Georgia",
+ "Atlantic/Stanley",
+ "Atlantic/St_Helena",
+ "Australia/Adelaide",
+ "Australia/Brisbane",
+ "Australia/Broken_Hill",
+ "Australia/Currie",
+ "Australia/Darwin",
+ "Australia/Eucla",
+ "Australia/Hobart",
+ "Australia/Lindeman",
+ "Australia/Lord_Howe",
+ "Australia/Melbourne",
+ "Australia/Perth",
+ "Australia/Sydney",
+ "Canada/Atlantic",
+ "Canada/Central",
+ "Canada/Eastern",
+ "Canada/Mountain",
+ "Canada/Newfoundland",
+ "Canada/Pacific",
+ "Europe/Amsterdam",
+ "Europe/Andorra",
+ "Europe/Athens",
+ "Europe/Belgrade",
+ "Europe/Berlin",
+ "Europe/Brussels",
+ "Europe/Bucharest",
+ "Europe/Budapest",
+ "Europe/Chisinau",
+ "Europe/Copenhagen",
+ "Europe/Dublin",
+ "Europe/Gibraltar",
+ "Europe/Helsinki",
+ "Europe/Istanbul",
+ "Europe/Kaliningrad",
+ "Europe/Kiev",
+ "Europe/Lisbon",
+ "Europe/London",
+ "Europe/Luxembourg",
+ "Europe/Madrid",
+ "Europe/Malta",
+ "Europe/Minsk",
+ "Europe/Monaco",
+ "Europe/Moscow",
+ "Europe/Oslo",
+ "Europe/Paris",
+ "Europe/Prague",
+ "Europe/Riga",
+ "Europe/Rome",
+ "Europe/Samara",
+ "Europe/Simferopol",
+ "Europe/Sofia",
+ "Europe/Stockholm",
+ "Europe/Tallinn",
+ "Europe/Tirane",
+ "Europe/Uzhgorod",
+ "Europe/Vaduz",
+ "Europe/Vienna",
+ "Europe/Vilnius",
+ "Europe/Volgograd",
+ "Europe/Warsaw",
+ "Europe/Zaporozhye",
+ "Europe/Zurich",
+ "GMT",
+ "Indian/Antananarivo",
+ "Indian/Chagos",
+ "Indian/Christmas",
+ "Indian/Cocos",
+ "Indian/Comoro",
+ "Indian/Kerguelen",
+ "Indian/Mahe",
+ "Indian/Maldives",
+ "Indian/Mauritius",
+ "Indian/Mayotte",
+ "Indian/Reunion",
+ "Pacific/Apia",
+ "Pacific/Auckland",
+ "Pacific/Chatham",
+ "Pacific/Chuuk",
+ "Pacific/Easter",
+ "Pacific/Efate",
+ "Pacific/Enderbury",
+ "Pacific/Fakaofo",
+ "Pacific/Fiji",
+ "Pacific/Funafuti",
+ "Pacific/Galapagos",
+ "Pacific/Gambier",
+ "Pacific/Guadalcanal",
+ "Pacific/Guam",
+ "Pacific/Honolulu",
+ "Pacific/Johnston",
+ "Pacific/Kiritimati",
+ "Pacific/Kosrae",
+ "Pacific/Kwajalein",
+ "Pacific/Majuro",
+ "Pacific/Marquesas",
+ "Pacific/Midway",
+ "Pacific/Nauru",
+ "Pacific/Niue",
+ "Pacific/Norfolk",
+ "Pacific/Noumea",
+ "Pacific/Pago_Pago",
+ "Pacific/Palau",
+ "Pacific/Pitcairn",
+ "Pacific/Pohnpei",
+ "Pacific/Port_Moresby",
+ "Pacific/Rarotonga",
+ "Pacific/Saipan",
+ "Pacific/Tahiti",
+ "Pacific/Tarawa",
+ "Pacific/Tongatapu",
+ "Pacific/Wake",
+ "Pacific/Wallis",
+ "UTC"
+ ],
+ "default": "UTC"
+ }
+ ]
+ }
+ ]
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "datePicker",
+ "label": "Import Mixpanel events since",
+ "value": "startFromDate",
+ "format": "YYYY-MM-DD",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/data/sources/moengage/db_config.json b/src/configurations/sources/moengage/db-config.json
similarity index 100%
rename from data/sources/moengage/db_config.json
rename to src/configurations/sources/moengage/db-config.json
diff --git a/src/configurations/sources/moengage/metadata.json b/src/configurations/sources/moengage/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/moengage/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/moengage/schema.json b/src/configurations/sources/moengage/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/moengage/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/moengage/ui-config.json b/src/configurations/sources/moengage/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/moengage/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/monday/db-config.json b/src/configurations/sources/monday/db-config.json
new file mode 100644
index 000000000..a2e05e9de
--- /dev/null
+++ b/src/configurations/sources/monday/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "monday",
+ "category": "webhook",
+ "displayName": "Monday Source"
+}
diff --git a/src/configurations/sources/monday/metadata.json b/src/configurations/sources/monday/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/monday/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/monday/schema.json b/src/configurations/sources/monday/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/monday/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/monday/ui-config.json b/src/configurations/sources/monday/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/monday/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/mysql/db-config.json b/src/configurations/sources/mysql/db-config.json
new file mode 100644
index 000000000..789e69194
--- /dev/null
+++ b/src/configurations/sources/mysql/db-config.json
@@ -0,0 +1,9 @@
+{
+ "name": "mysql",
+ "category": "warehouse",
+ "displayName": "MySql",
+ "options": {
+ "syncBehaviours": ["upsert", "mirror"],
+ "isSqlModelSupported": false
+ }
+}
diff --git a/src/configurations/sources/mysql/metadata.json b/src/configurations/sources/mysql/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/mysql/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/mysql/schema.json b/src/configurations/sources/mysql/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/mysql/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/mysql/ui-config.json b/src/configurations/sources/mysql/ui-config.json
new file mode 100644
index 000000000..87b0c8b08
--- /dev/null
+++ b/src/configurations/sources/mysql/ui-config.json
@@ -0,0 +1,77 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["password"],
+ "docLinks": {},
+ "nameField": "user",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": false,
+ "inputFieldType": "number"
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "dbname",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "inputFieldType": "password",
+ "regex": ".*",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "SSL Mode",
+ "value": "sslmode",
+ "options": [
+ {
+ "name": "false",
+ "value": "false"
+ },
+ {
+ "name": "skip-verify",
+ "value": "skip-verify"
+ }
+ ],
+ "defaultOption": {
+ "name": "false",
+ "value": "false"
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/netsuite/db-config.json b/src/configurations/sources/netsuite/db-config.json
new file mode 100644
index 000000000..bdbaef438
--- /dev/null
+++ b/src/configurations/sources/netsuite/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "netsuite",
+ "category": "cloud",
+ "displayName": "NetSuite"
+}
diff --git a/src/configurations/sources/netsuite/metadata.json b/src/configurations/sources/netsuite/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/netsuite/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/netsuite/schema.json b/src/configurations/sources/netsuite/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/netsuite/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/netsuite/ui-config.json b/src/configurations/sources/netsuite/ui-config.json
new file mode 100644
index 000000000..95f1de4ce
--- /dev/null
+++ b/src/configurations/sources/netsuite/ui-config.json
@@ -0,0 +1,86 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["consumerKey", "consumerSecret", "tokenId", "tokenSecret"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "Account Id",
+ "value": "accountId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Consumer Key",
+ "value": "consumerKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Consumer Secret",
+ "value": "consumerSecret",
+ "inputType": "password",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Token ID",
+ "value": "tokenId",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Token Secret",
+ "inputType": "password",
+ "value": "tokenSecret",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ }
+ ]
+ }
+ ]
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "datePicker",
+ "label": "Historical sync start date",
+ "value": "startDateIso",
+ "format": "YYYY-MM-DD",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Rudder Restlet URL",
+ "value": "restletUrl",
+ "footerNote": "In order to sync saved searches, you need to install https://js.blendo.co/netsuite/v1/restlet.js script in your Netsuite account, and paste the generated Restlet URL here."
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/node/db-config.json b/src/configurations/sources/node/db-config.json
new file mode 100644
index 000000000..6bd678118
--- /dev/null
+++ b/src/configurations/sources/node/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Node",
+ "displayName": "Node"
+}
diff --git a/src/configurations/sources/node/metadata.json b/src/configurations/sources/node/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/node/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/node/schema.json b/src/configurations/sources/node/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/node/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/node/ui-config.json b/src/configurations/sources/node/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/node/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/olark/db_config.json b/src/configurations/sources/olark/db-config.json
similarity index 100%
rename from data/sources/olark/db_config.json
rename to src/configurations/sources/olark/db-config.json
diff --git a/src/configurations/sources/olark/metadata.json b/src/configurations/sources/olark/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/olark/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/olark/schema.json b/src/configurations/sources/olark/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/olark/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/olark/ui-config.json b/src/configurations/sources/olark/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/olark/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/pagerduty/db_config.json b/src/configurations/sources/pagerduty/db-config.json
similarity index 100%
rename from data/sources/pagerduty/db_config.json
rename to src/configurations/sources/pagerduty/db-config.json
diff --git a/src/configurations/sources/pagerduty/metadata.json b/src/configurations/sources/pagerduty/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/pagerduty/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/pagerduty/schema.json b/src/configurations/sources/pagerduty/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/pagerduty/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/pagerduty/ui-config.json b/src/configurations/sources/pagerduty/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/pagerduty/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/pardot/db-config.json b/src/configurations/sources/pardot/db-config.json
new file mode 100644
index 000000000..8486cf31a
--- /dev/null
+++ b/src/configurations/sources/pardot/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "pardot",
+ "category": "cloud",
+ "displayName": "Pardot"
+}
diff --git a/src/configurations/sources/pardot/metadata.json b/src/configurations/sources/pardot/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/pardot/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/pardot/schema.json b/src/configurations/sources/pardot/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/pardot/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/pardot/ui-config.json b/src/configurations/sources/pardot/ui-config.json
new file mode 100644
index 000000000..c5dd496d4
--- /dev/null
+++ b/src/configurations/sources/pardot/ui-config.json
@@ -0,0 +1,41 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["password"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "Email",
+ "value": "email",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "User Key",
+ "value": "userKey",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/php/db-config.json b/src/configurations/sources/php/db-config.json
new file mode 100644
index 000000000..4cf429c39
--- /dev/null
+++ b/src/configurations/sources/php/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "PHP",
+ "displayName": "PHP"
+}
diff --git a/src/configurations/sources/php/metadata.json b/src/configurations/sources/php/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/php/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/php/schema.json b/src/configurations/sources/php/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/php/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/php/ui-config.json b/src/configurations/sources/php/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/php/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/pipedream/db_config.json b/src/configurations/sources/pipedream/db-config.json
similarity index 100%
rename from data/sources/pipedream/db_config.json
rename to src/configurations/sources/pipedream/db-config.json
diff --git a/src/configurations/sources/pipedream/metadata.json b/src/configurations/sources/pipedream/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/pipedream/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/pipedream/schema.json b/src/configurations/sources/pipedream/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/pipedream/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/pipedream/ui-config.json b/src/configurations/sources/pipedream/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/pipedream/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/pipedrive/db-config.json b/src/configurations/sources/pipedrive/db-config.json
new file mode 100644
index 000000000..daae40401
--- /dev/null
+++ b/src/configurations/sources/pipedrive/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "pipedrive",
+ "category": "cloud",
+ "displayName": "Pipedrive"
+}
diff --git a/src/configurations/sources/pipedrive/metadata.json b/src/configurations/sources/pipedrive/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/pipedrive/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/pipedrive/schema.json b/src/configurations/sources/pipedrive/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/pipedrive/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/pipedrive/ui-config.json b/src/configurations/sources/pipedrive/ui-config.json
new file mode 100644
index 000000000..d01174c8b
--- /dev/null
+++ b/src/configurations/sources/pipedrive/ui-config.json
@@ -0,0 +1,32 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["apiKey"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "Api Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/postgres/db-config.json b/src/configurations/sources/postgres/db-config.json
new file mode 100644
index 000000000..5dba73028
--- /dev/null
+++ b/src/configurations/sources/postgres/db-config.json
@@ -0,0 +1,9 @@
+{
+ "name": "postgres",
+ "category": "warehouse",
+ "displayName": "Postgres",
+ "options": {
+ "syncBehaviours": ["upsert", "mirror"],
+ "isSqlModelSupported": true
+ }
+}
diff --git a/src/configurations/sources/postgres/metadata.json b/src/configurations/sources/postgres/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/postgres/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/postgres/schema.json b/src/configurations/sources/postgres/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/postgres/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/postgres/ui-config.json b/src/configurations/sources/postgres/ui-config.json
new file mode 100644
index 000000000..856386a95
--- /dev/null
+++ b/src/configurations/sources/postgres/ui-config.json
@@ -0,0 +1,84 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["password"],
+ "docLinks": {
+ "grantPermissions": "https://docs.rudderstack.com/reverse-etl/postgresql/#granting-permissions",
+ "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/postgresql/#what-do-the-three-validations-under-verifying-credentials-imply",
+ "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/postgresql/#specifying-the-data-to-import",
+ "setupInstructions": "https://docs.rudderstack.com/reverse-etl/postgresql"
+ },
+ "nameField": "user",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "dbname",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "inputFieldType": "password",
+ "regex": ".*",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "inputFieldType": "number",
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "SSL Mode",
+ "value": "sslMode",
+ "options": [
+ {
+ "name": "disable",
+ "value": "disable"
+ },
+ {
+ "name": "require",
+ "value": "require"
+ }
+ ],
+ "defaultOption": {
+ "name": "disable",
+ "value": "disable"
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/posthog/db-config.json b/src/configurations/sources/posthog/db-config.json
new file mode 100644
index 000000000..9bbe877f2
--- /dev/null
+++ b/src/configurations/sources/posthog/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "POSTHOG",
+ "displayName": "PostHog"
+}
diff --git a/src/configurations/sources/posthog/metadata.json b/src/configurations/sources/posthog/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/posthog/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/posthog/schema.json b/src/configurations/sources/posthog/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/posthog/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/posthog/ui-config.json b/src/configurations/sources/posthog/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/posthog/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/python/db-config.json b/src/configurations/sources/python/db-config.json
new file mode 100644
index 000000000..b6b0243f7
--- /dev/null
+++ b/src/configurations/sources/python/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Python",
+ "displayName": "Python"
+}
diff --git a/src/configurations/sources/python/metadata.json b/src/configurations/sources/python/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/python/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/python/schema.json b/src/configurations/sources/python/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/python/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/python/ui-config.json b/src/configurations/sources/python/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/python/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/quickbooks/db-config.json b/src/configurations/sources/quickbooks/db-config.json
new file mode 100644
index 000000000..3a1e6bb55
--- /dev/null
+++ b/src/configurations/sources/quickbooks/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "quickbooks",
+ "category": "cloud",
+ "displayName": "Quickbooks"
+}
diff --git a/src/configurations/sources/quickbooks/metadata.json b/src/configurations/sources/quickbooks/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/quickbooks/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/quickbooks/schema.json b/src/configurations/sources/quickbooks/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/quickbooks/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/quickbooks/ui-config.json b/src/configurations/sources/quickbooks/ui-config.json
new file mode 100644
index 000000000..a5ba1b3e2
--- /dev/null
+++ b/src/configurations/sources/quickbooks/ui-config.json
@@ -0,0 +1,7 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ }
+ }
+}
diff --git a/src/configurations/sources/react_native/db-config.json b/src/configurations/sources/react_native/db-config.json
new file mode 100644
index 000000000..b66c752cc
--- /dev/null
+++ b/src/configurations/sources/react_native/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "ReactNative",
+ "displayName": "React Native"
+}
diff --git a/src/configurations/sources/react_native/metadata.json b/src/configurations/sources/react_native/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/react_native/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/react_native/schema.json b/src/configurations/sources/react_native/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/react_native/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/react_native/ui-config.json b/src/configurations/sources/react_native/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/react_native/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/reactnative/db-config.json b/src/configurations/sources/reactnative/db-config.json
new file mode 100644
index 000000000..26a5977dc
--- /dev/null
+++ b/src/configurations/sources/reactnative/db-config.json
@@ -0,0 +1,4 @@
+{
+ "displayName": "React Native",
+ "name": "ReactNative"
+}
diff --git a/src/configurations/sources/reactnative/metadata.json b/src/configurations/sources/reactnative/metadata.json
new file mode 100644
index 000000000..04b72d189
--- /dev/null
+++ b/src/configurations/sources/reactnative/metadata.json
@@ -0,0 +1 @@
+{ "docCategory": "", "docLink": "" }
diff --git a/src/configurations/sources/redshift/db-config.json b/src/configurations/sources/redshift/db-config.json
new file mode 100644
index 000000000..29a31f353
--- /dev/null
+++ b/src/configurations/sources/redshift/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "redshift",
+ "category": "warehouse",
+ "displayName": "Redshift",
+ "options": {
+ "syncBehaviours": ["upsert", "mirror"],
+ "isSqlModelSupported": true,
+ "isAudienceSupported": true
+ }
+}
diff --git a/src/configurations/sources/redshift/metadata.json b/src/configurations/sources/redshift/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/redshift/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/redshift/schema.json b/src/configurations/sources/redshift/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/redshift/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/redshift/ui-config.json b/src/configurations/sources/redshift/ui-config.json
new file mode 100644
index 000000000..d1a5aa783
--- /dev/null
+++ b/src/configurations/sources/redshift/ui-config.json
@@ -0,0 +1,84 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["password"],
+ "docLinks": {
+ "grantPermissions": "https://docs.rudderstack.com/reverse-etl/amazon-redshift/#granting-permissions",
+ "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/amazon-redshift/#what-do-the-three-validations-under-verifying-credentials-imply",
+ "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-redshift/#specifying-the-data-to-import",
+ "setupInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-redshift"
+ },
+ "nameField": "user",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Host",
+ "value": "host",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Port",
+ "inputFieldType": "number",
+ "value": "port",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "dbname",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "inputFieldType": "password",
+ "regex": ".*",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "SSL Mode",
+ "value": "sslMode",
+ "options": [
+ {
+ "name": "disable",
+ "value": "disable"
+ },
+ {
+ "name": "require",
+ "value": "require"
+ }
+ ],
+ "defaultOption": {
+ "name": "disable",
+ "value": "disable"
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/data/sources/refiner/db_config.json b/src/configurations/sources/refiner/db-config.json
similarity index 100%
rename from data/sources/refiner/db_config.json
rename to src/configurations/sources/refiner/db-config.json
diff --git a/src/configurations/sources/refiner/metadata.json b/src/configurations/sources/refiner/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/refiner/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/refiner/schema.json b/src/configurations/sources/refiner/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/refiner/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/refiner/ui-config.json b/src/configurations/sources/refiner/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/refiner/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/ruby/db-config.json b/src/configurations/sources/ruby/db-config.json
new file mode 100644
index 000000000..f4614b130
--- /dev/null
+++ b/src/configurations/sources/ruby/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Ruby",
+ "displayName": "Ruby"
+}
diff --git a/src/configurations/sources/ruby/metadata.json b/src/configurations/sources/ruby/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/ruby/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/ruby/schema.json b/src/configurations/sources/ruby/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/ruby/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/ruby/ui-config.json b/src/configurations/sources/ruby/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/ruby/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/rust/db-config.json b/src/configurations/sources/rust/db-config.json
new file mode 100644
index 000000000..17fe274c5
--- /dev/null
+++ b/src/configurations/sources/rust/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Rust",
+ "displayName": "Rust"
+}
diff --git a/src/configurations/sources/rust/metadata.json b/src/configurations/sources/rust/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/rust/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/rust/schema.json b/src/configurations/sources/rust/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/rust/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/rust/ui-config.json b/src/configurations/sources/rust/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/rust/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/s3/db-config.json b/src/configurations/sources/s3/db-config.json
new file mode 100644
index 000000000..5c3d05740
--- /dev/null
+++ b/src/configurations/sources/s3/db-config.json
@@ -0,0 +1,9 @@
+{
+ "name": "s3",
+ "category": "warehouse",
+ "displayName": "Amazon S3",
+ "options": {
+ "skipWarehouseSchemaConfig": true,
+ "isCredentialsValidationSupported": true
+ }
+}
diff --git a/src/configurations/sources/s3/metadata.json b/src/configurations/sources/s3/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/s3/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/s3/schema.json b/src/configurations/sources/s3/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/s3/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/s3/ui-config.json b/src/configurations/sources/s3/ui-config.json
new file mode 100644
index 000000000..80c31521b
--- /dev/null
+++ b/src/configurations/sources/s3/ui-config.json
@@ -0,0 +1,86 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "docLinks": {
+ "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-s3/#specifying-the-data-to-import",
+ "setupInstructions": "https://docs.rudderstack.com/reverse-etl/amazon-s3"
+ },
+ "nameField": "rudder_account_name",
+ "secretFields": ["accessKey"],
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Connection Mode",
+ "value": "connectionMode",
+ "options": [
+ {
+ "name": "Cross-Account Role (recommended)",
+ "value": "crossAccountRole"
+ },
+ {
+ "name": "Access Key",
+ "value": "accessKey"
+ }
+ ],
+ "defaultOption": {
+ "value": "crossAccountRole"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "AWS Access Key ID",
+ "value": "accessKeyID",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "placeholder": "e.g: access-key-id",
+ "secret": true,
+ "trim": true,
+ "preRequisiteField": {
+ "name": "connectionMode",
+ "selectedValue": "accessKey"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "AWS Secret Access Key",
+ "value": "accessKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "inputFieldType": "password",
+ "required": true,
+ "placeholder": "e.g: secret-access-key",
+ "secret": true,
+ "preRequisiteField": {
+ "name": "connectionMode",
+ "selectedValue": "accessKey"
+ }
+ },
+ {
+ "type": "textInput",
+ "label": "Role ARN",
+ "value": "roleARN",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Role ARN",
+ "required": true,
+ "placeholder": "arn:aws:iam::xxxx:role/xxxx",
+ "preRequisiteField": {
+ "name": "connectionMode",
+ "selectedValue": "crossAccountRole"
+ },
+ "footerNote": "Please follow our docs to create the role ARN. For creating the role add the Account ID: `422074288268` and use Workspace Id as the External Id."
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/salesforce/db-config.json b/src/configurations/sources/salesforce/db-config.json
new file mode 100644
index 000000000..8b34aa336
--- /dev/null
+++ b/src/configurations/sources/salesforce/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "salesforce",
+ "category": "cloud",
+ "displayName": "Salesforce",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/salesforce/metadata.json b/src/configurations/sources/salesforce/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/salesforce/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/salesforce/schema.json b/src/configurations/sources/salesforce/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/salesforce/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/salesforce/ui-config.json b/src/configurations/sources/salesforce/ui-config.json
new file mode 100644
index 000000000..a5ba1b3e2
--- /dev/null
+++ b/src/configurations/sources/salesforce/ui-config.json
@@ -0,0 +1,7 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ }
+ }
+}
diff --git a/data/sources/satismeter/db_config.json b/src/configurations/sources/satismeter/db-config.json
similarity index 100%
rename from data/sources/satismeter/db_config.json
rename to src/configurations/sources/satismeter/db-config.json
diff --git a/src/configurations/sources/satismeter/metadata.json b/src/configurations/sources/satismeter/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/satismeter/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/satismeter/schema.json b/src/configurations/sources/satismeter/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/satismeter/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/satismeter/ui-config.json b/src/configurations/sources/satismeter/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/satismeter/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/segment/db-config.json b/src/configurations/sources/segment/db-config.json
new file mode 100644
index 000000000..61a2808c4
--- /dev/null
+++ b/src/configurations/sources/segment/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "Segment",
+ "category": "webhook",
+ "displayName": "Segment"
+}
diff --git a/src/configurations/sources/segment/metadata.json b/src/configurations/sources/segment/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/segment/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/segment/schema.json b/src/configurations/sources/segment/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/segment/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/segment/ui-config.json b/src/configurations/sources/segment/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/segment/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/sendgrid/db-config.json b/src/configurations/sources/sendgrid/db-config.json
new file mode 100644
index 000000000..a0c54ac60
--- /dev/null
+++ b/src/configurations/sources/sendgrid/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "sendgrid",
+ "category": "cloud",
+ "displayName": "SendGrid",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/sendgrid/metadata.json b/src/configurations/sources/sendgrid/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/sendgrid/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/sendgrid/schema.json b/src/configurations/sources/sendgrid/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/sendgrid/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/sendgrid/ui-config.json b/src/configurations/sources/sendgrid/ui-config.json
new file mode 100644
index 000000000..0b566bc45
--- /dev/null
+++ b/src/configurations/sources/sendgrid/ui-config.json
@@ -0,0 +1,31 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["apiKey"],
+ "nameField": "rudder_account_name",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account Name",
+ "value": "rudder_account_name",
+ "regex": ".*",
+ "required": true,
+ "placeholder": "e.g: account name"
+ },
+ {
+ "type": "textInput",
+ "label": "API Key",
+ "value": "apiKey",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/shopify/db-config.json b/src/configurations/sources/shopify/db-config.json
new file mode 100644
index 000000000..8690245b3
--- /dev/null
+++ b/src/configurations/sources/shopify/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "Shopify",
+ "category": "webhook",
+ "displayName": "Shopify",
+ "options": {
+ "isBeta": false
+ }
+}
diff --git a/src/configurations/sources/shopify/metadata.json b/src/configurations/sources/shopify/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/shopify/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/shopify/schema.json b/src/configurations/sources/shopify/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/shopify/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/shopify/ui-config.json b/src/configurations/sources/shopify/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/shopify/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/signl4/db-config.json b/src/configurations/sources/signl4/db-config.json
new file mode 100644
index 000000000..7d2dcd37c
--- /dev/null
+++ b/src/configurations/sources/signl4/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "signl4",
+ "category": "webhook",
+ "displayName": "SIGNL4"
+}
diff --git a/src/configurations/sources/signl4/metadata.json b/src/configurations/sources/signl4/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/signl4/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/signl4/schema.json b/src/configurations/sources/signl4/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/signl4/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/signl4/ui-config.json b/src/configurations/sources/signl4/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/signl4/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer-recurly/db-config.json b/src/configurations/sources/singer-recurly/db-config.json
new file mode 100644
index 000000000..cdf13e149
--- /dev/null
+++ b/src/configurations/sources/singer-recurly/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "singer-recurly",
+ "category": "singer-protocol",
+ "displayName": "Recurly",
+ "options": {
+ "isBeta": false,
+ "image": "rudderstack/source-recurly:v2.0.0",
+ "digest": "sha256:628d6c46a6b468f5df0ea637cbe1a37afcaade40bfea1110e8ded74a2187a5cd"
+ }
+}
diff --git a/src/configurations/sources/singer-recurly/metadata.json b/src/configurations/sources/singer-recurly/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer-recurly/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer-recurly/schema.json b/src/configurations/sources/singer-recurly/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer-recurly/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer-recurly/ui-config.json b/src/configurations/sources/singer-recurly/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer-recurly/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/singer_amplitude/db_config.json b/src/configurations/sources/singer_amplitude/db-config.json
similarity index 100%
rename from data/sources/singer_amplitude/db_config.json
rename to src/configurations/sources/singer_amplitude/db-config.json
diff --git a/src/configurations/sources/singer_amplitude/metadata.json b/src/configurations/sources/singer_amplitude/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_amplitude/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_amplitude/schema.json b/src/configurations/sources/singer_amplitude/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_amplitude/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_amplitude/ui-config.json b/src/configurations/sources/singer_amplitude/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_amplitude/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_bing_ads/db-config.json b/src/configurations/sources/singer_bing_ads/db-config.json
new file mode 100644
index 000000000..4d2efd4e6
--- /dev/null
+++ b/src/configurations/sources/singer_bing_ads/db-config.json
@@ -0,0 +1,12 @@
+{
+ "name": "singer-bing-ads",
+ "category": "singer-protocol",
+ "displayName": "Bing Ads V2",
+ "options": {
+ "auth": {
+ "oauthRole": "bing_ads"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-bing-ads:v4.0.5"
+ }
+}
diff --git a/src/configurations/sources/singer_bing_ads/metadata.json b/src/configurations/sources/singer_bing_ads/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_bing_ads/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_bing_ads/schema.json b/src/configurations/sources/singer_bing_ads/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_bing_ads/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_bing_ads/ui-config.json b/src/configurations/sources/singer_bing_ads/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_bing_ads/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_chargebee/db-config.json b/src/configurations/sources/singer_chargebee/db-config.json
new file mode 100644
index 000000000..3d7bdf75d
--- /dev/null
+++ b/src/configurations/sources/singer_chargebee/db-config.json
@@ -0,0 +1,9 @@
+{
+ "name": "singer-chargebee",
+ "category": "singer-protocol",
+ "displayName": "Chargebee",
+ "options": {
+ "image": "rudderstack/source-chargebee:v2.0.0",
+ "digest": "sha256:b83d459bef179ebc5f17b82e0d58a1df111df5e59730ebe41137c06df7510061"
+ }
+}
diff --git a/src/configurations/sources/singer_chargebee/metadata.json b/src/configurations/sources/singer_chargebee/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_chargebee/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_chargebee/schema.json b/src/configurations/sources/singer_chargebee/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_chargebee/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_chargebee/ui-config.json b/src/configurations/sources/singer_chargebee/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_chargebee/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_customer_io/db-config.json b/src/configurations/sources/singer_customer_io/db-config.json
new file mode 100644
index 000000000..4a9e17ff7
--- /dev/null
+++ b/src/configurations/sources/singer_customer_io/db-config.json
@@ -0,0 +1,9 @@
+{
+ "name": "singer-customer-io",
+ "category": "singer-protocol",
+ "displayName": "Customer.io",
+ "options": {
+ "image": "rudderstack/source-customer-io:v1",
+ "digest": "sha256:177b64138c431332337ef946ff903a31883de51068475504978371797b8dd481"
+ }
+}
diff --git a/src/configurations/sources/singer_customer_io/metadata.json b/src/configurations/sources/singer_customer_io/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_customer_io/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_customer_io/schema.json b/src/configurations/sources/singer_customer_io/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_customer_io/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_customer_io/ui-config.json b/src/configurations/sources/singer_customer_io/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_customer_io/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_facebook_marketing/db-config.json b/src/configurations/sources/singer_facebook_marketing/db-config.json
new file mode 100644
index 000000000..2976df3c7
--- /dev/null
+++ b/src/configurations/sources/singer_facebook_marketing/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "singer-facebook-marketing",
+ "category": "singer-protocol",
+ "displayName": "Facebook Marketing",
+ "options": {
+ "isBeta": true,
+ "image": "rudderstack/source-facebook-marketing:v4.0.1",
+ "hidden": false
+ }
+}
diff --git a/src/configurations/sources/singer_facebook_marketing/metadata.json b/src/configurations/sources/singer_facebook_marketing/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_facebook_marketing/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_facebook_marketing/schema.json b/src/configurations/sources/singer_facebook_marketing/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_facebook_marketing/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_facebook_marketing/ui-config.json b/src/configurations/sources/singer_facebook_marketing/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_facebook_marketing/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_freshdesk/db-config.json b/src/configurations/sources/singer_freshdesk/db-config.json
new file mode 100644
index 000000000..d68336593
--- /dev/null
+++ b/src/configurations/sources/singer_freshdesk/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "singer-freshdesk",
+ "category": "singer-protocol",
+ "displayName": "Freshdesk",
+ "options": {
+ "image": "rudderstack/source-freshdesk:v4.0.3"
+ }
+}
diff --git a/src/configurations/sources/singer_freshdesk/metadata.json b/src/configurations/sources/singer_freshdesk/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_freshdesk/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_freshdesk/schema.json b/src/configurations/sources/singer_freshdesk/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_freshdesk/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_freshdesk/ui-config.json b/src/configurations/sources/singer_freshdesk/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_freshdesk/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_google_ads/db-config.json b/src/configurations/sources/singer_google_ads/db-config.json
new file mode 100644
index 000000000..6b888bed2
--- /dev/null
+++ b/src/configurations/sources/singer_google_ads/db-config.json
@@ -0,0 +1,13 @@
+{
+ "name": "singer-google_adwords",
+ "category": "singer-protocol",
+ "displayName": "Google ads",
+ "options": {
+ "auth": {
+ "provider": "Google"
+ },
+ "digest": "sha256:9b52972787a0747792ed43d0d909eee3f0d1c3fe755b2492e109d63cd9731fd6",
+ "image": "rudderstack/source-google-ads:v4.0.6",
+ "isBeta": false
+ }
+}
diff --git a/src/configurations/sources/singer_google_ads/metadata.json b/src/configurations/sources/singer_google_ads/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_google_ads/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_google_ads/schema.json b/src/configurations/sources/singer_google_ads/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_google_ads/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_google_ads/ui-config.json b/src/configurations/sources/singer_google_ads/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_google_ads/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_google_analytics/db-config.json b/src/configurations/sources/singer_google_analytics/db-config.json
new file mode 100644
index 000000000..e5b02601f
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics/db-config.json
@@ -0,0 +1,12 @@
+{
+ "name": "singer-google-analytics",
+ "category": "singer-protocol",
+ "displayName": "Google Analytics",
+ "options": {
+ "auth": {
+ "oauthRole": "singer-google-analytics",
+ "provider": "Google"
+ },
+ "image": "rudderstack/source-google-analytics:v2.1"
+ }
+}
diff --git a/src/configurations/sources/singer_google_analytics/metadata.json b/src/configurations/sources/singer_google_analytics/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_google_analytics/schema.json b/src/configurations/sources/singer_google_analytics/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_google_analytics/ui-config.json b/src/configurations/sources/singer_google_analytics/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_google_analytics_v4/db-config.json b/src/configurations/sources/singer_google_analytics_v4/db-config.json
new file mode 100644
index 000000000..78bc5904b
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics_v4/db-config.json
@@ -0,0 +1,13 @@
+{
+ "name": "singer-google-analytics-v4",
+ "category": "singer-protocol",
+ "displayName": "Google Analytics 4",
+ "options": {
+ "auth": {
+ "oauthRole": "singer-google-analytics",
+ "provider": "Google"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-google-analytics-v4:v4.0.1"
+ }
+}
diff --git a/src/configurations/sources/singer_google_analytics_v4/metadata.json b/src/configurations/sources/singer_google_analytics_v4/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics_v4/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_google_analytics_v4/schema.json b/src/configurations/sources/singer_google_analytics_v4/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics_v4/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_google_analytics_v4/ui-config.json b/src/configurations/sources/singer_google_analytics_v4/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_google_analytics_v4/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/singer_google_search_console/db_config.json b/src/configurations/sources/singer_google_search_console/db-config.json
similarity index 100%
rename from data/sources/singer_google_search_console/db_config.json
rename to src/configurations/sources/singer_google_search_console/db-config.json
diff --git a/src/configurations/sources/singer_google_search_console/metadata.json b/src/configurations/sources/singer_google_search_console/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_google_search_console/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_google_search_console/schema.json b/src/configurations/sources/singer_google_search_console/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_google_search_console/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_google_search_console/ui-config.json b/src/configurations/sources/singer_google_search_console/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_google_search_console/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_google_sheets/db-config.json b/src/configurations/sources/singer_google_sheets/db-config.json
new file mode 100644
index 000000000..aac722666
--- /dev/null
+++ b/src/configurations/sources/singer_google_sheets/db-config.json
@@ -0,0 +1,12 @@
+{
+ "name": "singer-google-sheets",
+ "category": "singer-protocol",
+ "displayName": "Google Sheets V2",
+ "options": {
+ "auth": {
+ "provider": "Google"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-google-sheets:v4.0.5"
+ }
+}
diff --git a/src/configurations/sources/singer_google_sheets/metadata.json b/src/configurations/sources/singer_google_sheets/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_google_sheets/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_google_sheets/schema.json b/src/configurations/sources/singer_google_sheets/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_google_sheets/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_google_sheets/ui-config.json b/src/configurations/sources/singer_google_sheets/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_google_sheets/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_hubspot/db-config.json b/src/configurations/sources/singer_hubspot/db-config.json
new file mode 100644
index 000000000..8ca5504b5
--- /dev/null
+++ b/src/configurations/sources/singer_hubspot/db-config.json
@@ -0,0 +1,12 @@
+{
+ "name": "singer-hubspot",
+ "category": "singer-protocol",
+ "displayName": "HubSpot",
+ "options": {
+ "auth": {
+ "oauthRole": "hubspot"
+ },
+ "image": "rudderstack/source-hubspot:v4.0.5",
+ "isBeta": false
+ }
+}
diff --git a/src/configurations/sources/singer_hubspot/metadata.json b/src/configurations/sources/singer_hubspot/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_hubspot/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_hubspot/schema.json b/src/configurations/sources/singer_hubspot/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_hubspot/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_hubspot/ui-config.json b/src/configurations/sources/singer_hubspot/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_hubspot/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/singer_intercom/db_config.json b/src/configurations/sources/singer_intercom/db-config.json
similarity index 100%
rename from data/sources/singer_intercom/db_config.json
rename to src/configurations/sources/singer_intercom/db-config.json
diff --git a/src/configurations/sources/singer_intercom/metadata.json b/src/configurations/sources/singer_intercom/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_intercom/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_intercom/schema.json b/src/configurations/sources/singer_intercom/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_intercom/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_intercom/ui-config.json b/src/configurations/sources/singer_intercom/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_intercom/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/singer_iterable/db_config.json b/src/configurations/sources/singer_iterable/db-config.json
similarity index 100%
rename from data/sources/singer_iterable/db_config.json
rename to src/configurations/sources/singer_iterable/db-config.json
diff --git a/src/configurations/sources/singer_iterable/metadata.json b/src/configurations/sources/singer_iterable/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_iterable/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_iterable/schema.json b/src/configurations/sources/singer_iterable/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_iterable/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_iterable/ui-config.json b/src/configurations/sources/singer_iterable/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_iterable/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_klaviyo/db-config.json b/src/configurations/sources/singer_klaviyo/db-config.json
new file mode 100644
index 000000000..b23e95142
--- /dev/null
+++ b/src/configurations/sources/singer_klaviyo/db-config.json
@@ -0,0 +1,9 @@
+{
+ "name": "singer-klaviyo",
+ "category": "singer-protocol",
+ "displayName": "Klaviyo",
+ "options": {
+ "digest": "sha256:da89670d1800b8b8e96987bc4a9660a383e7ba7d400d210908580f3c7fd07332",
+ "image": "rudderstack/source-klaviyo:v2.0.0"
+ }
+}
diff --git a/src/configurations/sources/singer_klaviyo/metadata.json b/src/configurations/sources/singer_klaviyo/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_klaviyo/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_klaviyo/schema.json b/src/configurations/sources/singer_klaviyo/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_klaviyo/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_klaviyo/ui-config.json b/src/configurations/sources/singer_klaviyo/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_klaviyo/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_mailchimp/db-config.json b/src/configurations/sources/singer_mailchimp/db-config.json
new file mode 100644
index 000000000..22256f6b3
--- /dev/null
+++ b/src/configurations/sources/singer_mailchimp/db-config.json
@@ -0,0 +1,13 @@
+{
+ "name": "singer-mailchimp",
+ "category": "singer-protocol",
+ "displayName": "Mailchimp",
+ "options": {
+ "auth": {
+ "oauthRole": "mailchimp"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-mailchimp:v1",
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/singer_mailchimp/metadata.json b/src/configurations/sources/singer_mailchimp/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_mailchimp/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_mailchimp/schema.json b/src/configurations/sources/singer_mailchimp/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_mailchimp/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_mailchimp/ui-config.json b/src/configurations/sources/singer_mailchimp/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_mailchimp/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_mixpanel/db-config.json b/src/configurations/sources/singer_mixpanel/db-config.json
new file mode 100644
index 000000000..197955808
--- /dev/null
+++ b/src/configurations/sources/singer_mixpanel/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "singer-mixpanel",
+ "category": "singer-protocol",
+ "displayName": "Mixpanel",
+ "options": {
+ "image": "rudderstack/source-mixpanel:v2.0.1"
+ }
+}
diff --git a/src/configurations/sources/singer_mixpanel/metadata.json b/src/configurations/sources/singer_mixpanel/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_mixpanel/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_mixpanel/schema.json b/src/configurations/sources/singer_mixpanel/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_mixpanel/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_mixpanel/ui-config.json b/src/configurations/sources/singer_mixpanel/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_mixpanel/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_pardot/db-config.json b/src/configurations/sources/singer_pardot/db-config.json
new file mode 100644
index 000000000..795732fa0
--- /dev/null
+++ b/src/configurations/sources/singer_pardot/db-config.json
@@ -0,0 +1,13 @@
+{
+ "name": "singer-pardot",
+ "category": "singer-protocol",
+ "displayName": "Pardot",
+ "options": {
+ "auth": {
+ "oauthRole": "pardot"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-pardot:v1",
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/singer_pardot/metadata.json b/src/configurations/sources/singer_pardot/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_pardot/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_pardot/schema.json b/src/configurations/sources/singer_pardot/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_pardot/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_pardot/ui-config.json b/src/configurations/sources/singer_pardot/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_pardot/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_pipedrive/db-config.json b/src/configurations/sources/singer_pipedrive/db-config.json
new file mode 100644
index 000000000..ce2fbf2c1
--- /dev/null
+++ b/src/configurations/sources/singer_pipedrive/db-config.json
@@ -0,0 +1,13 @@
+{
+ "name": "singer-pipedrive",
+ "category": "singer-protocol",
+ "displayName": "Pipedrive",
+ "options": {
+ "auth": {
+ "oauthRole": "pipedrive"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-pipedrive:v1",
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/singer_pipedrive/metadata.json b/src/configurations/sources/singer_pipedrive/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_pipedrive/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_pipedrive/schema.json b/src/configurations/sources/singer_pipedrive/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_pipedrive/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_pipedrive/ui-config.json b/src/configurations/sources/singer_pipedrive/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_pipedrive/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_quickbooks/db-config.json b/src/configurations/sources/singer_quickbooks/db-config.json
new file mode 100644
index 000000000..90f87b2fe
--- /dev/null
+++ b/src/configurations/sources/singer_quickbooks/db-config.json
@@ -0,0 +1,13 @@
+{
+ "name": "singer-quickbooks",
+ "category": "singer-protocol",
+ "displayName": "Quickbooks",
+ "options": {
+ "auth": {
+ "oauthRole": "quickbooks"
+ },
+ "isBeta": true,
+ "image": "rudderstack/source-quickbooks:v1",
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/singer_quickbooks/metadata.json b/src/configurations/sources/singer_quickbooks/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_quickbooks/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_quickbooks/schema.json b/src/configurations/sources/singer_quickbooks/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_quickbooks/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_quickbooks/ui-config.json b/src/configurations/sources/singer_quickbooks/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_quickbooks/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/singer_salesforce/db_config.json b/src/configurations/sources/singer_salesforce/db-config.json
similarity index 100%
rename from data/sources/singer_salesforce/db_config.json
rename to src/configurations/sources/singer_salesforce/db-config.json
diff --git a/src/configurations/sources/singer_salesforce/metadata.json b/src/configurations/sources/singer_salesforce/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_salesforce/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_salesforce/schema.json b/src/configurations/sources/singer_salesforce/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_salesforce/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_salesforce/ui-config.json b/src/configurations/sources/singer_salesforce/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_salesforce/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/data/sources/singer_sendgrid/db_config.json b/src/configurations/sources/singer_sendgrid/db-config.json
similarity index 100%
rename from data/sources/singer_sendgrid/db_config.json
rename to src/configurations/sources/singer_sendgrid/db-config.json
diff --git a/src/configurations/sources/singer_sendgrid/metadata.json b/src/configurations/sources/singer_sendgrid/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_sendgrid/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_sendgrid/schema.json b/src/configurations/sources/singer_sendgrid/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_sendgrid/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_sendgrid/ui-config.json b/src/configurations/sources/singer_sendgrid/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_sendgrid/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_stripe/db-config.json b/src/configurations/sources/singer_stripe/db-config.json
new file mode 100644
index 000000000..f29836d89
--- /dev/null
+++ b/src/configurations/sources/singer_stripe/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "singer-stripe",
+ "category": "singer-protocol",
+ "displayName": "Stripe",
+ "options": {
+ "isBeta": true,
+ "image": "rudderstack/source-stripe:v1",
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/singer_stripe/metadata.json b/src/configurations/sources/singer_stripe/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_stripe/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_stripe/schema.json b/src/configurations/sources/singer_stripe/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_stripe/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_stripe/ui-config.json b/src/configurations/sources/singer_stripe/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_stripe/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_zendesk_chat/db-config.json b/src/configurations/sources/singer_zendesk_chat/db-config.json
new file mode 100644
index 000000000..d5982f834
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_chat/db-config.json
@@ -0,0 +1,11 @@
+{
+ "name": "singer-zendesk-chat",
+ "category": "singer-protocol",
+ "displayName": "Zendesk Chat",
+ "options": {
+ "auth": {
+ "oauthRole": "singer-zendesk-chat"
+ },
+ "image": "rudderstack/source-zendesk-chat:v2.0.2"
+ }
+}
diff --git a/src/configurations/sources/singer_zendesk_chat/metadata.json b/src/configurations/sources/singer_zendesk_chat/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_chat/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_zendesk_chat/schema.json b/src/configurations/sources/singer_zendesk_chat/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_chat/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_zendesk_chat/ui-config.json b/src/configurations/sources/singer_zendesk_chat/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_chat/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/singer_zendesk_support/db-config.json b/src/configurations/sources/singer_zendesk_support/db-config.json
new file mode 100644
index 000000000..49a7bd6d5
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_support/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "singer-zendesk-support",
+ "category": "singer-protocol",
+ "displayName": "Zendesk Support",
+ "options": {
+ "image": "rudderstack/source-zendesk-support:v1"
+ }
+}
diff --git a/src/configurations/sources/singer_zendesk_support/metadata.json b/src/configurations/sources/singer_zendesk_support/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_support/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/singer_zendesk_support/schema.json b/src/configurations/sources/singer_zendesk_support/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_support/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/singer_zendesk_support/ui-config.json b/src/configurations/sources/singer_zendesk_support/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/singer_zendesk_support/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/snowflake/db-config.json b/src/configurations/sources/snowflake/db-config.json
new file mode 100644
index 000000000..8446a930b
--- /dev/null
+++ b/src/configurations/sources/snowflake/db-config.json
@@ -0,0 +1,10 @@
+{
+ "name": "snowflake",
+ "category": "warehouse",
+ "displayName": "Snowflake",
+ "options": {
+ "syncBehaviours": ["upsert", "mirror"],
+ "isSqlModelSupported": true,
+ "isAudienceSupported": true
+ }
+}
diff --git a/src/configurations/sources/snowflake/metadata.json b/src/configurations/sources/snowflake/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/snowflake/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/snowflake/schema.json b/src/configurations/sources/snowflake/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/snowflake/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/snowflake/ui-config.json b/src/configurations/sources/snowflake/ui-config.json
new file mode 100644
index 000000000..42828fac9
--- /dev/null
+++ b/src/configurations/sources/snowflake/ui-config.json
@@ -0,0 +1,89 @@
+{
+ "uiConfig": [
+ {
+ "title": "Connection Credentials",
+ "secretFields": ["password"],
+ "docLinks": {
+ "grantPermissions": "https://docs.rudderstack.com/reverse-etl/snowflake/#granting-permissions",
+ "verifyingCredentials": "https://docs.rudderstack.com/reverse-etl/snowflake/#what-do-the-three-validations-under-verifying-credentials-imply",
+ "jsonMapperUseInstructions": "https://docs.rudderstack.com/reverse-etl/snowflake/#specifying-the-data-to-import",
+ "setupInstructions": "https://docs.rudderstack.com/reverse-etl/snowflake"
+ },
+ "nameField": "account",
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Account",
+ "value": "account",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Database",
+ "value": "dbname",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Warehouse",
+ "value": "warehouse",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "addInAccountSummary": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "User",
+ "value": "user",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true,
+ "trim": true
+ },
+ {
+ "type": "textInput",
+ "label": "Password",
+ "value": "password",
+ "inputFieldType": "password",
+ "regex": ".*",
+ "required": true,
+ "secret": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Choose your Cloud",
+ "value": "cloudProvider",
+ "options": [
+ {
+ "name": "Amazon Web Services",
+ "value": "AWS"
+ },
+ {
+ "name": "Google Cloud Platform",
+ "value": "GCP"
+ },
+ {
+ "name": "Microsoft Azure",
+ "value": "AZURE"
+ }
+ ],
+ "defaultOption": {
+ "name": "Amazon Web Services",
+ "value": "AWS"
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/configurations/sources/stripe/db-config.json b/src/configurations/sources/stripe/db-config.json
new file mode 100644
index 000000000..5bed2d211
--- /dev/null
+++ b/src/configurations/sources/stripe/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "stripe",
+ "category": "cloud",
+ "displayName": "Stripe"
+}
diff --git a/src/configurations/sources/stripe/metadata.json b/src/configurations/sources/stripe/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/stripe/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/stripe/schema.json b/src/configurations/sources/stripe/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/stripe/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/stripe/ui-config.json b/src/configurations/sources/stripe/ui-config.json
new file mode 100644
index 000000000..7dc4084fe
--- /dev/null
+++ b/src/configurations/sources/stripe/ui-config.json
@@ -0,0 +1,130 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "type": "singleSelect",
+ "label": "Stripe Version",
+ "value": "stripeVersion",
+ "options": [
+ {
+ "name": "2020-08-27",
+ "value": "2020-08-27"
+ },
+ {
+ "name": "2020-03-02",
+ "value": "2020-03-02"
+ },
+ {
+ "name": "2019-12-03",
+ "value": "2019-12-03"
+ },
+ {
+ "name": "2019-11-05",
+ "value": "2019-11-05"
+ },
+ {
+ "name": "2019-10-17",
+ "value": "2019-10-17"
+ },
+ {
+ "name": "2019-10-08",
+ "value": "2019-10-08"
+ },
+ {
+ "name": "2019-09-09",
+ "value": "2019-09-09"
+ },
+ {
+ "name": "2019-08-14",
+ "value": "2019-08-14"
+ },
+ {
+ "name": "2019-05-16",
+ "value": "2019-05-16"
+ },
+ {
+ "name": "2019-03-14",
+ "value": "2019-03-14"
+ },
+ {
+ "name": "2019-02-19",
+ "value": "2019-02-19"
+ },
+ {
+ "name": "2019-02-11",
+ "value": "2019-02-11"
+ },
+ {
+ "name": "2018-11-08",
+ "value": "2018-11-08"
+ },
+ {
+ "name": "2018-10-31",
+ "value": "2018-10-31"
+ },
+ {
+ "name": "2018-09-24",
+ "value": "2018-09-24"
+ },
+ {
+ "name": "2018-08-23",
+ "value": "2018-08-23"
+ },
+ {
+ "name": "2018-07-27",
+ "value": "2018-07-27"
+ },
+ {
+ "name": "2018-05-21",
+ "value": "2018-05-21"
+ },
+ {
+ "name": "2018-02-28",
+ "value": "2018-02-28"
+ },
+ {
+ "name": "2018-02-05",
+ "value": "2018-02-05"
+ },
+ {
+ "name": "2018-01-23",
+ "value": "2018-01-23"
+ },
+ {
+ "name": "2017-12-14",
+ "value": "2017-12-14"
+ },
+ {
+ "name": "2017-08-15",
+ "value": "2017-08-15"
+ },
+ {
+ "name": "2017-05-25",
+ "value": "2017-05-25"
+ },
+ {
+ "name": "2017-04-06",
+ "value": "2017-04-06"
+ },
+ {
+ "name": "2017-02-14",
+ "value": "2017-02-14"
+ }
+ ],
+ "defaultOption": {
+ "name": "Default Version",
+ "value": ""
+ },
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/unity/db-config.json b/src/configurations/sources/unity/db-config.json
new file mode 100644
index 000000000..de6fbaec4
--- /dev/null
+++ b/src/configurations/sources/unity/db-config.json
@@ -0,0 +1,4 @@
+{
+ "name": "Unity",
+ "displayName": "Unity"
+}
diff --git a/src/configurations/sources/unity/metadata.json b/src/configurations/sources/unity/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/unity/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/unity/schema.json b/src/configurations/sources/unity/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/unity/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/unity/ui-config.json b/src/configurations/sources/unity/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/unity/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/webhook/db-config.json b/src/configurations/sources/webhook/db-config.json
new file mode 100644
index 000000000..34fe376f4
--- /dev/null
+++ b/src/configurations/sources/webhook/db-config.json
@@ -0,0 +1,5 @@
+{
+ "name": "webhook",
+ "category": "webhook",
+ "displayName": "Webhook Source"
+}
diff --git a/src/configurations/sources/webhook/metadata.json b/src/configurations/sources/webhook/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/webhook/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/webhook/schema.json b/src/configurations/sources/webhook/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/webhook/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/webhook/ui-config.json b/src/configurations/sources/webhook/ui-config.json
new file mode 100644
index 000000000..a64a05b7e
--- /dev/null
+++ b/src/configurations/sources/webhook/ui-config.json
@@ -0,0 +1,3 @@
+{
+ "uiConfig": null
+}
diff --git a/src/configurations/sources/xero/db-config.json b/src/configurations/sources/xero/db-config.json
new file mode 100644
index 000000000..2b1219ea9
--- /dev/null
+++ b/src/configurations/sources/xero/db-config.json
@@ -0,0 +1,11 @@
+{
+ "name": "xero",
+ "category": "cloud",
+ "displayName": "Xero",
+ "options": {
+ "auth": {
+ "provider": "Xero"
+ },
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/xero/metadata.json b/src/configurations/sources/xero/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/xero/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/xero/schema.json b/src/configurations/sources/xero/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/xero/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/xero/ui-config.json b/src/configurations/sources/xero/ui-config.json
new file mode 100644
index 000000000..e5572ee64
--- /dev/null
+++ b/src/configurations/sources/xero/ui-config.json
@@ -0,0 +1,42 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth"
+ },
+ "config": [
+ {
+ "title": "Source Settings",
+ "fields": [
+ {
+ "method": "post",
+ "type": "dynamicSelect",
+ "url": "/cloudSources/info/roles/xero/info/tenants",
+ "label": "Tenant Id",
+ "labelKey": "tenantId",
+ "valueKey": "tenantId",
+ "value": "tenantId",
+ "required": true
+ },
+ {
+ "type": "singleSelect",
+ "label": "Earliest report year",
+ "value": "reportStartYear",
+ "footerNote": "Fetch monthly reports starting from this year.",
+ "required": true,
+ "options": [2019, 2018, 2017, 2016, 2015],
+ "default": 2019
+ },
+ {
+ "type": "singleSelect",
+ "label": "Report starting month",
+ "value": "reportPastMonths",
+ "footerNote": "Starting month for each monthly report.",
+ "required": true,
+ "options": [1, 3, 6, 12],
+ "default": 6
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/src/configurations/sources/zendesk/db-config.json b/src/configurations/sources/zendesk/db-config.json
new file mode 100644
index 000000000..3ee109de9
--- /dev/null
+++ b/src/configurations/sources/zendesk/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "zendesk",
+ "category": "cloud",
+ "displayName": "Zendesk",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/zendesk/metadata.json b/src/configurations/sources/zendesk/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/zendesk/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/zendesk/schema.json b/src/configurations/sources/zendesk/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/zendesk/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/zendesk/ui-config.json b/src/configurations/sources/zendesk/ui-config.json
new file mode 100644
index 000000000..ee2947ec8
--- /dev/null
+++ b/src/configurations/sources/zendesk/ui-config.json
@@ -0,0 +1,39 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "form",
+ "secretFields": ["token"],
+ "nameField": "username",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Subdomain",
+ "value": "subdomain",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Zendesk username (Email)",
+ "value": "username",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ },
+ {
+ "type": "textInput",
+ "label": "Token",
+ "value": "token",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value",
+ "required": true
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/configurations/sources/zendesk_chat/db-config.json b/src/configurations/sources/zendesk_chat/db-config.json
new file mode 100644
index 000000000..adafd83db
--- /dev/null
+++ b/src/configurations/sources/zendesk_chat/db-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "zendesk_chat",
+ "category": "cloud",
+ "displayName": "Zendesk Chat",
+ "options": {
+ "hidden": true
+ }
+}
diff --git a/src/configurations/sources/zendesk_chat/metadata.json b/src/configurations/sources/zendesk_chat/metadata.json
new file mode 100644
index 000000000..1aa657680
--- /dev/null
+++ b/src/configurations/sources/zendesk_chat/metadata.json
@@ -0,0 +1,13 @@
+{
+ "metadata": {
+ "primaryCategory": "",
+ "secondaryCategory": [],
+ "docLink": "",
+ "logoPath": "",
+ "releaseStatus": "beta",
+ "sourceCode": {
+ "github": "",
+ "version": "v1.0.0"
+ }
+ }
+}
diff --git a/src/configurations/sources/zendesk_chat/schema.json b/src/configurations/sources/zendesk_chat/schema.json
new file mode 100644
index 000000000..fddffa4cc
--- /dev/null
+++ b/src/configurations/sources/zendesk_chat/schema.json
@@ -0,0 +1,3 @@
+{
+ "configSchema": null
+}
diff --git a/src/configurations/sources/zendesk_chat/ui-config.json b/src/configurations/sources/zendesk_chat/ui-config.json
new file mode 100644
index 000000000..29166a44c
--- /dev/null
+++ b/src/configurations/sources/zendesk_chat/ui-config.json
@@ -0,0 +1,22 @@
+{
+ "uiConfig": {
+ "auth": {
+ "type": "OAuth",
+ "config": [
+ {
+ "fields": [
+ {
+ "type": "textInput",
+ "label": "Subdomain",
+ "value": "subdomain",
+ "required": true,
+ "footerNote": "Subdomain of your Zendesk Chat URL",
+ "regex": "^(.{0,100})$",
+ "regexErrorMessage": "Invalid Value"
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 000000000..80bf090fa
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1 @@
+export * from './validator';
diff --git a/src/validations/__tests__/validation.test.ts b/src/validations/__tests__/validation.test.ts
deleted file mode 100644
index 048139ed6..000000000
--- a/src/validations/__tests__/validation.test.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-/* eslint-disable max-len */
-import init, { validateConfig } from '../validator';
-import fs from 'fs';
-import path from 'path';
-
-type TestConfigSchema = {
- [key: string]: unknown;
-};
-
-function getDestNames(path:any) {
- return fs.readdirSync(path).filter(function (file) {
- return fs.statSync(path+'/'+file).isDirectory();
- });
-}
-
-// dynamically fetch all the destination names
-const destNameArray = getDestNames(path.join(process.cwd(),'data','destinations'));
-
-const testDatas: Array = [];
-
-// console.log(destNameArray)
-
-destNameArray.forEach((dest: any) => {
- try {
- testDatas[dest] = JSON.parse(
- fs.readFileSync(
- path.resolve(
- __dirname,
- `./validation_test_data/${dest.toLowerCase()}_test.json`,
- ),
- 'utf-8',
- ),
- );
- } catch (e) {}
-});
-
-function delay(ms: number) {
- return new Promise((resolve) => setTimeout(resolve, ms));
-}
-
-describe('Validator Tests', () => {
- beforeAll(async () => {
- init();
- await delay(1000);
- });
- let destCount = 1;
- Object.keys(testDatas).forEach((dest: any) => {
- let payloadCount = 0;
- describe(`${destCount}. ${dest}`, () => {
- Object.values(testDatas[dest]).forEach((td: any) => {
- it(`Payload ${payloadCount}`, async () => {
- if (td.result === true) {
- expect(validateConfig(dest, td.config)).toBeUndefined();
- }
- if (td.result === false) {
- try {
- validateConfig(dest, td.config);
- } catch (err: any) {
- expect(err.message).toEqual(JSON.stringify(td.err));
- }
- }
- });
- payloadCount += 1;
- });
- destCount += 1;
- });
- });
-});
diff --git a/src/validations/__tests__/validation_test_data/adobe_analytics_test.json b/src/validations/__tests__/validation_test_data/adobe_analytics_test.json
deleted file mode 100644
index 8a64058f8..000000000
--- a/src/validations/__tests__/validation_test_data/adobe_analytics_test.json
+++ /dev/null
@@ -1,409 +0,0 @@
-[
- {
- "config": {
- "trackingServerUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics",
- "trackingServerSecureUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics/",
- "reportSuiteIds": "id001, id002",
- "sslHeartbeat": true,
- "heartbeatTrackingServerUrl": "https://heartbeat.com",
- "useUtf8Charset": true,
- "useSecureServerSide": true,
- "proxyNormalUrl": "",
- "proxyHeartbeatUrl": "",
- "marketingCloudOrgId": "org10121",
- "dropVisitorId": true,
- "timestampOption": "enabled",
- "timestampOptionalReporting": true,
- "noFallbackVisitorId": false,
- "preferVisitorId": true,
- "trackPageName": true,
- "contextDataPrefix": "rudderstack-context",
- "useLegacyLinkName": true,
- "pageNameFallbackTostring": false,
- "sendFalseValues": true,
- "productIdentifier": "sku",
- "eventFilteringOption": "blacklistedEvents",
- "eventsToTypes": [
- {
- "from": "video start",
- "to": "heartbeatPlaybackStarted"
- },
- {
- "from": "video end",
- "to": "heartbeatPlaybackCompleted"
- }
- ],
- "listDelimiter": [
- {
- "from": "listPhone",
- "to": ","
- },
- {
- "from": "listMobile",
- "to": "|"
- }
- ],
- "propsDelimiter": [
- {
- "from": "customPhone",
- "to": ","
- },
- {
- "from": "customMobile",
- "to": "|"
- }
- ],
- "eventMerchProperties": [
- {
- "eventMerchProperties": "currency"
- },
- {
- "eventMerchProperties": "location"
- }
- ],
- "productMerchProperties": [
- {
- "productMerchProperties": "productName"
- },
- {
- "productMerchProperties": "productInventory"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "Restart Checkout"
- },
- {
- "eventName": "Restart Initiated"
- }
- ],
- "rudderEventsToAdobeEvents": [
- {
- "from": "product searched",
- "to": "ps1,ps2"
- }
- ],
- "contextDataMapping": [
- {
- "from": "page.name",
- "to": "pName"
- },
- {
- "from": "page.url",
- "to": "pUrl"
- }
- ],
- "mobileEventMapping": [
- {
- "from": "page.name",
- "to": "pName"
- },
- {
- "from": "page.url",
- "to": "pUrl"
- }
- ],
- "eVarMapping": [
- {
- "from": "phone",
- "to": "1"
- },
- {
- "from": "mobile",
- "to": "2"
- }
- ],
- "hierMapping": [
- {
- "from": "phone",
- "to": "1"
- },
- {
- "from": "mobile",
- "to": "2"
- }
- ],
- "listMapping": [
- {
- "from": "listPhone",
- "to": "1"
- },
- {
- "from": "listMobile",
- "to": "2"
- }
- ],
- "customPropsMapping": [
- {
- "from": "phone",
- "to": "1"
- },
- {
- "from": "mobile",
- "to": "2"
- }
- ],
- "eventMerchEventToAdobeEvent": [
- {
- "from": "Order Completed",
- "to": "merchEvent1"
- }
- ],
- "productMerchEventToAdobeEvent": [
- {
- "from": "Product Ordered",
- "to": "MerchProduct1"
- }
- ],
- "productMerchEvarsMap": [
- {
- "from": "phone",
- "to": "1"
- },
- {
- "from": "mobile",
- "to": "2"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "trackingServerUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics",
- "trackingServerSecureUrl": "",
- "sslHeartbeat": false,
- "heartbeatTrackingServerUrl": "",
- "useUtf8Charset": false,
- "useSecureServerSide": false,
- "proxyNormalUrl": "",
- "proxyHeartbeatUrl": "",
- "marketingCloudOrgId": "org10121",
- "dropVisitorId": false,
- "timestampOption": "enabled",
- "timestampOptionalReporting": true,
- "noFallbackVisitorId": false,
- "preferVisitorId": false,
- "trackPageName": true,
- "contextDataPrefix": "rudderstack-context",
- "useLegacyLinkName": true,
- "pageNameFallbackTostring": false,
- "sendFalseValues": true,
- "productIdentifier": "sku",
- "eventsToTypes": [
- {
- "from": "video start",
- "to": "heartbeatPlaybackStarted"
- },
- {
- "from": "video end",
- "to": "heartbeatPlaybackCompleted"
- }
- ],
- "listDelimiter": [
- {
- "from": "customList",
- "to": "|"
- },
- {
- "from": "listMobile",
- "to": "|"
- }
- ],
- "propsDelimiter": [
- {
- "from": "customPhone",
- "to": ","
- },
- {
- "from": "customMobile",
- "to": "|"
- }
- ],
- "eventMerchProperties": [
- {
- "eventMerchProperties": "currency"
- },
- {
- "eventMerchProperties": "location"
- }
- ],
- "productMerchProperties": [
- {
- "productMerchProperties": "productName"
- },
- {
- "productMerchProperties": "productInventory"
- }
- ],
- "rudderEventsToAdobeEvents": [
- {
- "from": "product searched",
- "to": "ps1,ps2"
- }
- ],
- "contextDataMapping": [
- {
- "from": "page.name",
- "to": "pName"
- },
- {
- "from": "page.url",
- "to": "pUrl"
- }
- ],
- "mobileEventMapping": [
- {
- "from": "page.name",
- "to": "pName"
- },
- {
- "from": "page.url",
- "to": "pUrl"
- }
- ],
- "eVarMapping": [
- {
- "from": "phone",
- "to": "1"
- },
- {
- "from": "mobile",
- "to": "2"
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'reportSuiteIds'"]
- },
- {
- "config": {
- "trackingServerUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics",
- "trackingServerSecureUrl": "",
- "sslHeartbeat": false,
- "heartbeatTrackingServerUrl": "",
- "useUtf8Charset": false,
- "useSecureServerSide": false,
- "proxyNormalUrl": "",
- "proxyHeartbeatUrl": "",
- "marketingCloudOrgId": "org10121",
- "dropVisitorId": false,
- "timestampOption": "enabled",
- "timestampOptionalReporting": true,
- "noFallbackVisitorId": false,
- "preferVisitorId": false,
- "trackPageName": true,
- "contextDataPrefix": "rudderstack-context",
- "useLegacyLinkName": true,
- "pageNameFallbackTostring": false,
- "sendFalseValues": true,
- "productIdentifier": "sku",
- "eventsToTypes": [
- {
- "from": "video start",
- "to": "heartbeatPlaybackStarted"
- },
- {
- "from": "video end",
- "to": "heartbeatPlaybackCompleted"
- }
- ],
- "listDelimiter": [
- {
- "from": "",
- "to": ""
- },
- {
- "from": "listMobile",
- "to": "|"
- }
- ],
- "propsDelimiter": [
- {
- "from": "customPhone",
- "to": ","
- },
- {
- "from": "customMobile",
- "to": "|"
- }
- ],
- "eventMerchProperties": [
- {
- "eventMerchProperties": "currency"
- },
- {
- "eventMerchProperties": "location"
- }
- ],
- "productMerchProperties": [
- {
- "productMerchProperties": "productName"
- },
- {
- "productMerchProperties": "productInventory"
- }
- ],
- "rudderEventsToAdobeEvents": [
- {
- "from": "product searched",
- "to": "ps1,ps2"
- }
- ],
- "contextDataMapping": [
- {
- "from": "page.name",
- "to": "pName"
- },
- {
- "from": "page.url",
- "to": "pUrl"
- }
- ],
- "mobileEventMapping": [
- {
- "from": "page.name",
- "to": "pName"
- },
- {
- "from": "page.url",
- "to": "pUrl"
- }
- ],
- "eVarMapping": [
- {
- "from": "phone",
- "to": "1"
- },
- {
- "from": "mobile",
- "to": "2"
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'reportSuiteIds'"]
- },
- {
- "config": {
- "reportSuiteIds": "navvalue01"
- },
- "result": true
- }
-]
-
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/adroll_test.json b/src/validations/__tests__/validation_test_data/adroll_test.json
deleted file mode 100644
index 32a50fcf7..000000000
--- a/src/validations/__tests__/validation_test_data/adroll_test.json
+++ /dev/null
@@ -1,189 +0,0 @@
-[
- {
- "config": {
- "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
- "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "w1"
- },
- {
- "eventName": "w2"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "w1"
- },
- {
- "eventName": "w2"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": [
- " must have required property 'advId'"
- ]
- },
- {
- "config": {
- "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
- "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- },
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
- "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "w1"
- },
- {
- "eventName": "w2"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- }
- ],
- "useNativeSDK": true,
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": ["useNativeSDK must be object"]
- },
- {
- "config": {
- "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "w1"
- },
- {
- "eventName": "w2"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": [
- " must have required property 'pixId'"
- ]
- },
- {
- "config": {
- "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
- "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [],
- "blacklistedEvents": [
- {
- "eventName": {
- "key": "eventValue"
- }
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": [
- "blacklistedEvents.0.eventName must be string"
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/af_test.json b/src/validations/__tests__/validation_test_data/af_test.json
deleted file mode 100644
index 1db9cc90c..000000000
--- a/src/validations/__tests__/validation_test_data/af_test.json
+++ /dev/null
@@ -1,109 +0,0 @@
-[
- {
- "config": {
- "devKey": "aSL8jBa1DG9erAmMxRPiLM",
- "androidAppId": "com.yara.fw.stage",
- "appleAppId": "1202646468",
- "useRichEventName": true,
- "sharingFilter": "all",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "devKey_event"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "useNativeSDK": {
- "android": true
- },
- "androidAppId": "in.mintpro.debug",
- "useRichEventName": true,
- "sharingFilter": "all",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err" : [" must have required property 'devKey'"]
- },
- {
- "config": {
- "devKey": "KPH1PgKOKNst12LgFnQ8EI",
- "androidAppId": "com.mycom.android.parent.debug",
- "appleAppId": "id1251122201",
- "useRichEventName": false,
- "sharingFilter": "all",
- "eventFilteringOption": "blacklistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "Onboarding Opening"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "Application Backgrounded"
- }
- ],
- "useNativeSDK": {
- "ios": true
- }
- },
- "result": true
- },
- {
- "config": {
- "devKey": "P4kRcaFz8d6WwjpoosM3M1",
- "useNativeSDK": {
- "ios": true
- },
- "appleAppId": "1524157507",
- "androidAppId": ""
- },
- "result": true
- },
- {
- "config": {
- "devKey": "fSk3Lt3dVaWRTQ8H5m7BvI",
- "useRichEventName": false,
- "sharingFilter": "all",
- "useNativeSDK": {
- "reactnative": false
- },
- "appleAppId": 1565920403
- },
- "result": false,
- "err": ["appleAppId must be string"]
- },
- {
- "config": {
- "devKey": "aSL8jBa1DG9erAmMxRPiLM",
- "androidAppId": "com.yara.fw.stage",
- "appleAppId": "1202646468",
- "useRichEventName": true,
- "sharingFilter": "qwssjfhncbhfjehduhendhhcidkfhhzvvxxpoiqwbfhfjjdskkdhviiwyrtehegdgyksjhjffmcnbcnvopoqweebdgggvcjkicjjcjcjnnzxxcxxxsdjjhjhjfhfgffhhhtjjjwwoo",
- "eventFilteringOption": "whitelistedEvents",
- "useNativeSDK": {
- "cordova": true
- },
- "whitelistedEvents": [
- {
- "eventName": "devKey_event"
- }
- ]
- },
- "result": false,
- "err": ["sharingFilter must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/am_test.json b/src/validations/__tests__/validation_test_data/am_test.json
deleted file mode 100644
index 85f5252fe..000000000
--- a/src/validations/__tests__/validation_test_data/am_test.json
+++ /dev/null
@@ -1,448 +0,0 @@
-[
- {
- "config": {
- "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70",
- "apiSecret": "a41d5bc768831f083e3dacwecfgf7398",
- "groupTypeTrait": "company_id",
- "groupValueTrait": "company_name",
- "trackAllPages": false,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": false,
- "trackRevenuePerProduct": false,
- "versionName": "1.11.3",
- "residencyServer":"standard",
- "traitsToIncrement": [
- {
- "traits": "presentclass"
- },
- {
- "traits": "presentgrade"
- }
- ],
- "traitsToPrepend": [
- {
- "traits": "prequelclass"
- }
- ],
- "traitsToSetOnce": [
- {
- "traits": "initialclass"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "preferAnonymousIdForDeviceId": {
- "web": false
- },
- "deviceIdFromUrlParam": {
- "web": false
- },
- "forceHttps": {
- "web": false
- },
- "trackGclid": {
- "web": true
- },
- "trackReferrer": {
- "web": true
- },
- "saveParamsReferrerOncePerSession": {
- "web": true
- },
- "trackUtmProperties": {
- "web": true
- },
- "unsetParamsReferrerOnNewSession": {
- "web": false
- },
- "batchEvents": {
- "web": false
- },
- "eventUploadPeriodMillis": {
- "web": "30000"
- },
- "eventUploadThreshold": {
- "web": "30"
- },
- "blacklistedEvents": [
- {
- "eventName": "AM sample removed"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "AM allowed customer check"
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "a41d5bc768831f083e2swcwecfgf7398",
- "groupTypeTrait": "",
- "groupValueTrait": "",
- "trackAllPages": true,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": false,
- "trackRevenuePerProduct": false,
- "versionName": "1.0.1",
- "residencyServer":"EU",
- "traitsToIncrement": [
- {
- "traits": "profile_trait"
- }
- ],
- "traitsToSetOnce": [
- {
- "traits": "init"
- },
- {
- "traits": "init02"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "preferAnonymousIdForDeviceId": {
- "web": false
- },
- "deviceIdFromUrlParam": {
- "web": false
- },
- "forceHttps": {
- "web": true
- },
- "trackGclid": {
- "web": true
- },
- "trackReferrer": {
- "web": true
- },
- "saveParamsReferrerOncePerSession": {
- "web": true
- },
- "trackUtmProperties": {
- "web": false
- },
- "unsetParamsReferrerOnNewSession": {
- "web": false
- },
- "batchEvents": {
- "web": false
- },
- "eventUploadPeriodMillis": {
- "web": "30000"
- },
- "eventUploadThreshold": {
- "web": "30"
- }
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "config": {
- "apiKey": "32fc323b8c13214e46470b519edpo401",
- "groupTypeTrait": "Finsys_app_Stage",
- "groupValueTrait": "Finsys Stage",
- "trackAllPages": true,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": true,
- "trackRevenuePerProduct": true,
- "versionName": "",
- "residencyServer":"standard",
- "traitsToIncrement": [
- {
- "traits": ""
- }
- ],
- "traitsToSetOnce": [
- {
- "traits": ""
- }
- ],
- "traitsToAppend": [
- {
- "traits": ""
- }
- ],
- "traitsToPrepend": [
- {
- "traits": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "12fd322b8c13214e36450b519typo402",
- "groupTypeTrait": "Modelorama_app_Stage",
- "groupValueTrait": "Modelorama Stage",
- "trackAllPages": true,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": true,
- "trackRevenuePerProduct": true,
- "versionName": "",
- "residencyServer":"standard",
- "traitsToIncrement": [
- {
- "traits": ""
- }
- ],
- "traitsToSetOnce": [
- {
- "traits": ""
- }
- ],
- "traitsToAppend": [
- {
- "traits": ""
- }
- ],
- "traitsToPrepend": [
- {
- "traits": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "1173185cre3a65172943ba1e41113dwd",
- "groupTypeTrait": {
- "prop": "new"
- },
- "groupValueTrait": "",
- "trackAllPages": true,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": false,
- "trackRevenuePerProduct": false,
- "versionName": "",
- "residencyServer":"standard",
- "traitsToIncrement": [
- {
- "traits": ""
- }
- ],
- "traitsToSetOnce": [
- {
- "traits": ""
- }
- ],
- "traitsToAppend": [
- {
- "traits": ""
- }
- ],
- "traitsToPrepend": [
- {
- "traits": ""
- }
- ],
- "useNativeSDK": {},
- "preferAnonymousIdForDeviceId": {},
- "deviceIdFromUrlParam": {},
- "forceHttps": {},
- "trackGclid": {},
- "trackReferrer": {},
- "saveParamsReferrerOncePerSession": {},
- "trackUtmProperties": {},
- "unsetParamsReferrerOnNewSession": {},
- "batchEvents": {},
- "eventUploadPeriodMillis": {},
- "eventUploadThreshold": {},
- "blacklistedEvents": [],
- "whitelistedEvents": []
- },
- "result": false,
- "err": ["groupTypeTrait must be string"]
- },
- {
- "config": {
- "apiKey": "1173185cre3a65172943ba1e41113dwd",
- "groupTypeTrait": "",
- "groupValueTrait": "",
- "trackAllPages": true,
- "trackCategorizedPages": false,
- "trackNamedPages": true,
- "trackProductsOnce": false,
- "trackRevenuePerProduct": false,
- "versionName": "1.1.01",
- "residencyServer":"standard",
- "traitsToIncrement": [
- {
- "traits": {
- "trait_name": "common01"
- }
- }
- ],
- "traitsToSetOnce": [
- {
- "traits": ""
- }
- ],
- "traitsToAppend": [
- {
- "traits": ""
- }
- ],
- "traitsToPrepend": [
- {
- "traits": ""
- }
- ],
- "useNativeSDK": {},
- "preferAnonymousIdForDeviceId": {},
- "deviceIdFromUrlParam": {},
- "forceHttps": {},
- "trackGclid": {},
- "trackReferrer": {},
- "saveParamsReferrerOncePerSession": {},
- "trackUtmProperties": {},
- "unsetParamsReferrerOnNewSession": {},
- "batchEvents": {},
- "eventUploadPeriodMillis": {},
- "eventUploadThreshold": {},
- "blacklistedEvents": [],
- "whitelistedEvents": []
- },
- "result": false,
- "err": ["traitsToIncrement.0.traits must be string"]
- },
- {
- "config": {
- "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70",
- "apiSecret": "a41d5bc768831f083e3dacwecfgf7398",
- "groupTypeTrait": "college_id",
- "groupValueTrait": "college_name",
- "trackAllPages": false,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": false,
- "trackRevenuePerProduct": false,
- "versionName": "1.11.3",
- "residencyServer":"standard",
- "traitsToIncrement": [
- {
- "traits": ""
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "preferAnonymousIdForDeviceId": {
- "web": false
- },
- "deviceIdFromUrlParam": {
- "web": false
- },
- "forceHttps": {
- "web": false
- },
- "trackGclid": {
- "web": true
- },
- "trackReferrer": {
- "web": true
- },
- "saveParamsReferrerOncePerSession": {
- "web": true
- },
- "trackUtmProperties": {
- "web": true
- },
- "unsetParamsReferrerOnNewSession": {
- "web": false
- },
- "batchEvents": {
- "web": false
- },
- "eventUploadPeriodMillis": {
- "web": "3a-6b0000"
- },
- "eventUploadThreshold": {
- "web": "30"
- }
- },
- "result": false,
- "err": [
- "eventUploadPeriodMillis.web must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70",
- "apiSecret": "a41d5bc768831f083e3dacwecfgf7398",
- "groupTypeTrait": "college_id",
- "groupValueTrait": "college_name",
- "trackAllPages": false,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackProductsOnce": false,
- "trackRevenuePerProduct": false,
- "versionName": "1.11.3",
- "residencyServer":"EU",
- "traitsToIncrement": [
- {
- "traits": ""
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "preferAnonymousIdForDeviceId": {
- "web": false
- },
- "deviceIdFromUrlParam": {
- "web": false
- },
- "forceHttps": {
- "web": false
- },
- "trackGclid": {
- "web": true
- },
- "trackReferrer": {
- "web": true
- },
- "saveParamsReferrerOncePerSession": {
- "web": true
- },
- "trackUtmProperties": {
- "web": true
- },
- "unsetParamsReferrerOnNewSession": {
- "web": false
- },
- "batchEvents": {
- "web": false
- },
- "eventUploadPeriodMillis": {
- "web": "5672"
- },
- "eventUploadThreshold": {
- "web": "30c"
- }
- },
- "result": false,
- "err": [
- "eventUploadThreshold.web must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/attentive_tag_test.json b/src/validations/__tests__/validation_test_data/attentive_tag_test.json
deleted file mode 100644
index 8ba0bbdd9..000000000
--- a/src/validations/__tests__/validation_test_data/attentive_tag_test.json
+++ /dev/null
@@ -1,25 +0,0 @@
-[
- {
- "config": {
- "apiKey": "",
- "signUpSourceId": "123456"
- },
- "result": false,
- "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
- },
- {
- "config": {
- "apiKey": "str_1435jbakh012",
- "signUpSourceId": "123y56"
- },
- "result": false,
- "err": ["signUpSourceId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""]
- },
- {
- "config": {
- "apiKey": "jkdhfkjdhfkjdhr38yhr3f3",
- "signUpSourceId": "123456"
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/axeptio_test.json b/src/validations/__tests__/validation_test_data/axeptio_test.json
deleted file mode 100644
index 14b30c5bc..000000000
--- a/src/validations/__tests__/validation_test_data/axeptio_test.json
+++ /dev/null
@@ -1,48 +0,0 @@
-[
- {
- "config": {
- "clientId": "dskh4ryfhc347896ryfh",
- "toggleToActivateCallback": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": true
- },
- {
- "config": {
- "clientId": "",
- "toggleToActivateCallback": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": [
- "clientId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "clientId": "dskh4ryfhc347896ryfh",
- "toggleToActivateCallback": "false",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["toggleToActivateCallback must be boolean"]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/azure_datalake_test.json b/src/validations/__tests__/validation_test_data/azure_datalake_test.json
deleted file mode 100644
index 0402ef87b..000000000
--- a/src/validations/__tests__/validation_test_data/azure_datalake_test.json
+++ /dev/null
@@ -1,179 +0,0 @@
-[
- {
- "config": {
- "containerName": "test-container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": true
- },
- {
- "config": {
- "containerName": "test-container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "",
- "useSASTokens": false,
- "syncFrequency": "30"
- },
- "result": true
- },
- {
- "config": {
- "containerName": "test-container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "syncFrequency": "30"
- },
- "result": true
- },
- {
- "config": {
- "containerName": "test-container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "syncFrequency": "30"
- },
- "result": true
- },
- {
- "config": {
- "containerName": "test-container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": false,
- "syncFrequency": "30"
- },
- "result": true
- },
- {
- "config": {
- "containerName": "test-container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- " must have required property 'accountKey'",
- " must have required property 'useSASTokens'",
- " must have required property 'sasToken'",
- " must match a schema in anyOf"
- ]
- },
- {
- "config": {
- "containerName": "test-container-test-container-test-container-test-container-test-container-test-container-test-container-test-container-",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- },
- {
- "config": {
- "containerName": "test.container",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- },
- {
- "config": {
- "containerName": "testContainer",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- },
- {
- "config": {
- "containerName": "ab",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- },
- {
- "config": {
- "containerName": "ab..ab",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- },
- {
- "config": {
- "containerName": "ab--ab",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- },
- {
- "config": {
- "containerName": "1.2.3.4",
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "syncFrequency": "30"
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/azure_synapse_test.json b/src/validations/__tests__/validation_test_data/azure_synapse_test.json
deleted file mode 100644
index b8849f812..000000000
--- a/src/validations/__tests__/validation_test_data/azure_synapse_test.json
+++ /dev/null
@@ -1,276 +0,0 @@
-[
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test-bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "useSSL": true
- },
- "result": false,
- "err": [
- " must have required property 'accountKey'",
- " must have required property 'useSASTokens'",
- " must have required property 'sasToken'",
- " must match a schema in anyOf",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "useRudderStorage": false,
- "sslMode": "disable",
- "bucketProvider": "MINIO",
- "syncFrequency": "30",
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "secretAccessKey": "test-secret-access-key",
- "endPoint": "https:test.com",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "useRudderStorage": false,
- "syncFrequency": "30",
- "bucketName": "ab..ab",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test..bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test--container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "useRudderStorage": false,
- "sslMode": "disable",
- "bucketProvider": "MINIO",
- "syncFrequency": "30",
- "bucketName": "1.2.3.4",
- "accessKeyID": "test-access-key-id",
- "secretAccessKey": "test-secret-access-key",
- "endPoint": "https:test.com",
- "useSSL": true
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/canny_test.json b/src/validations/__tests__/validation_test_data/canny_test.json
deleted file mode 100644
index 9dfc0ad5d..000000000
--- a/src/validations/__tests__/validation_test_data/canny_test.json
+++ /dev/null
@@ -1,49 +0,0 @@
-[
- {
- "config": {
- "apiKey": "abcd123",
- "eventsToEvents": [
- {
- "from": "First",
- "to": "createVote"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "",
- "eventsToEvents": [
- {
- "from": "First",
- "to": "createPost"
- }
- ]
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "abcd",
- "eventsToEvents": [
- {
- "from": "First",
- "to": "createPost"
- },
- {
- "from": "Second",
- "to": "createPost"
- },
- {
- "from": "First",
- "to": "createVote"
- }
- ]
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/clickhouse_test.json b/src/validations/__tests__/validation_test_data/clickhouse_test.json
deleted file mode 100644
index b8849f812..000000000
--- a/src/validations/__tests__/validation_test_data/clickhouse_test.json
+++ /dev/null
@@ -1,276 +0,0 @@
-[
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test-bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "useSSL": true
- },
- "result": false,
- "err": [
- " must have required property 'accountKey'",
- " must have required property 'useSASTokens'",
- " must have required property 'sasToken'",
- " must match a schema in anyOf",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "useRudderStorage": false,
- "sslMode": "disable",
- "bucketProvider": "MINIO",
- "syncFrequency": "30",
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "secretAccessKey": "test-secret-access-key",
- "endPoint": "https:test.com",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "useRudderStorage": false,
- "syncFrequency": "30",
- "bucketName": "ab..ab",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test..bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test--container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "useRudderStorage": false,
- "sslMode": "disable",
- "bucketProvider": "MINIO",
- "syncFrequency": "30",
- "bucketName": "1.2.3.4",
- "accessKeyID": "test-access-key-id",
- "secretAccessKey": "test-secret-access-key",
- "endPoint": "https:test.com",
- "useSSL": true
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/clickup_test.json b/src/validations/__tests__/validation_test_data/clickup_test.json
deleted file mode 100644
index 7dfdb8119..000000000
--- a/src/validations/__tests__/validation_test_data/clickup_test.json
+++ /dev/null
@@ -1,105 +0,0 @@
-[
- {
- "config": {
- "apiToken": "pk_880343042_1W64ZBPLP71H5YAYAUEJHSRL",
- "listId": "175496000",
- "keyToCustomFieldName": [
- {
- "from": "Industry",
- "to": "industry"
- }
- ],
- "whitelistedEvents": [{ "eventName": "" }]
- },
- "result": true
- },
- {
- "config": {
- "apiToken": "pk_880343042_1W64ZBPLP71H5YAYAUEJHSRL",
- "listId": "175496000",
- "keyToCustomFieldName": [
- {
- "from": "Industry",
- "to": "industry"
- },
- {
- "from": "Account Size",
- "to": "accountSize"
- },
- {
- "from": "Contact Title",
- "to": "contactTitle"
- },
- {
- "from": "Payment Status",
- "to": "paymentStatus"
- }
- ],
- "whitelistedEvents": [
- { "eventName": "" },
- { "eventName": "Product Viewed" }
- ]
- },
- "result": true
- },
- {
- "config": {
- "apiToken": 8872341,
- "listId": "175496000",
- "keyToCustomFieldName": [
- {
- "from": "Industry",
- "to": "industry"
- }
- ]
- },
- "result": false,
- "err": ["apiToken must be string"]
- },
- {
- "config": {
- "apiToken": "",
- "listId": "175496000",
- "keyToCustomFieldName": [
- {
- "from": "Industry",
- "to": "industry"
- }
- ]
- },
- "result": false,
- "err": [
- "apiToken must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiToken": "8872341",
- "listId": "",
- "keyToCustomFieldName": [
- {
- "from": "Industry",
- "to": "industry"
- }
- ]
- },
- "result": false,
- "err": [
- "listId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "listId": "175496000"
- },
- "result": false,
- "err": [" must have required property 'apiToken'"]
- },
- {
- "config": {
- "apiToken": "8872341"
- },
- "result": false,
- "err": [" must have required property 'listId'"]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/convertflow_test.json b/src/validations/__tests__/validation_test_data/convertflow_test.json
deleted file mode 100644
index 3c72c6a05..000000000
--- a/src/validations/__tests__/validation_test_data/convertflow_test.json
+++ /dev/null
@@ -1,72 +0,0 @@
-[
- {
- "config": {
- "websiteId": "",
- "toggleToSendData": false,
- "eventsList": "cfView",
- "eventsMapping": [
- {
- "from": "cfView",
- "to": "Viewed CTA"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": [
- "websiteId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,10})$\""
- ]
- },
- {
- "config": {
- "websiteId": "47838",
- "toggleToSendData": "false",
- "eventsList": "cfView",
- "eventsMapping": [
- {
- "from": "cfView",
- "to": "Viewed CTA"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": [
- "toggleToSendData must be boolean"
- ]
-
- },
- {
- "config": {
- "websiteId": "23894",
- "toggleToSendData": true,
- "eventsList": "cfView",
- "eventsMapping": [
- {
- "from": "cfView",
- "to": "Viewed CTA"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/criteo_test.json b/src/validations/__tests__/validation_test_data/criteo_test.json
deleted file mode 100644
index 7ed489e45..000000000
--- a/src/validations/__tests__/validation_test_data/criteo_test.json
+++ /dev/null
@@ -1,131 +0,0 @@
-[
- {
- "config": {
- "accountId": "12",
- "homePageUrl": "https://www.google.com",
- "hashMethod": "md5",
- "fieldMapping": [
- {
- "from": "signup",
- "to": "billing"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "login"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "ad_disabled"
- }
- ],
- "eventFilteringOption": "whitelistedEvents",
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "product"
- }
- ]
- },
- "eventsToStandard": [
- {
- "from": "add to cart",
- "to": "product viewed"
- },
- {
- "from": "cart checkout",
- "to": "cart viewed"
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- },
- "result": true
- },
- {
- "config": {
- "accountId": "",
- "homePageUrl": "https://www.facebook.com",
- "hashMethod": "md5",
- "fieldMapping": [
- {
- "from": "signup",
- "to": "billing"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "login"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "ad_disabled"
- }
- ],
- "eventFilteringOption": "whitelistedEvents",
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "product"
- }
- ]
- },
- "eventsToStandard": [
- {
- "from": "add to cart",
- "to": "product viewed"
- },
- {
- "from": "cart checkout",
- "to": "cart viewed"
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- },
- "result": false,
- "err": [
- "accountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[1-9]+$\""
- ]
- },
- {
- "config": {
- "accountId": "15",
- "fieldMapping": [
- {
- "from": "login",
- "to": "logout"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "product added"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "ad_disabled"
- }
- ],
- "eventFilteringOption": "whitelistedEvents",
- "eventsToStandard": [
- {
- "from": "add to cart",
- "to": "product viewed"
- },
- {
- "from": "cart checkout",
- "to": "cart viewed"
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/custify_test.json b/src/validations/__tests__/validation_test_data/custify_test.json
deleted file mode 100644
index 4f9b52b36..000000000
--- a/src/validations/__tests__/validation_test_data/custify_test.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
- "config": {
- "apiKey": "testapikey",
- "sendAnonymousId": true
- },
- "result": true
- },
- {
- "config": {
- "sendAnonymousId": true
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "description": "TODO:We dont have a validation for empty string need to figure out this",
- "config": {
- "apiKey": "",
- "sendAnonymousId": true
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "testapikey",
- "sendAnonymousId": 123
- },
- "result": false,
- "err": ["sendAnonymousId must be boolean"]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/customerio_test.json b/src/validations/__tests__/validation_test_data/customerio_test.json
deleted file mode 100644
index b3f69b62b..000000000
--- a/src/validations/__tests__/validation_test_data/customerio_test.json
+++ /dev/null
@@ -1,167 +0,0 @@
-[
- {
- "config": {
- "siteID": "95bd1331112976i0ff9b",
- "apiKey": "95bd1331112976i0ff9b",
- "deviceTokenEventName": "device_token_registered",
- "datacenterEU": false,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": "eventmodel"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "taxmodel"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "95bd1331112976i0ff9b",
- "deviceTokenEventName": "device_token_registered",
- "datacenterEU": false,
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "eventmodel"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "taxmodel"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": false,
- "err": [" must have required property 'siteID'"]
- },
- {
- "config": {
- "siteID": "95bd1331112976i0ff9b",
- "apiKey": "95bd1330072974f0ff9b",
- "deviceTokenEventName": "device_location_registered",
- "datacenterEU": true,
- "whitelistedEvents": [
- {
- "eventName": "practice"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "spam_listings"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Sales"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "siteID": "15bd1331112976i0ff9b",
- "apiKey": "15bd1331112976i0ff9b",
- "deviceTokenEventName": "device_id_removed",
- "datacenterEU": false,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": [
- "e1",
- "v1"
- ]
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "taxmodel"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Pitch"
- }
- ]
- }
- },
- "result": false,
- "err": ["whitelistedEvents.0.eventName must be string"]
- },
- {
- "config": {
- "siteID": "95bd1331112976i0ff9b",
- "apiKey": "95bd1331112976i0ff9b",
- "deviceTokenEventName": "device_token_registered",
- "datacenterEU": "Germany",
- "eventFilteringOption": "disable",
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": ["datacenterEU must be boolean"]
- },
- {
- "config": {
- "siteID": "95bd1331112976i0ff9b",
- "apiKey": "95bd1331112976i0ff9b",
- "deviceTokenEventName": "qwsafpmznjhbfjhchdgeiuudhwgvdfkzxuiookaghhrytedhgfgjslalapooiqnbvemixuhevvsjklodjdokhuijghqwnvzxccdwsalkijediwhfwibkjnkji",
- "datacenterEU": true,
- "eventFilteringOption": "disable",
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": ["deviceTokenEventName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/dcm_floodlight_test.json b/src/validations/__tests__/validation_test_data/dcm_floodlight_test.json
deleted file mode 100644
index 581274ba0..000000000
--- a/src/validations/__tests__/validation_test_data/dcm_floodlight_test.json
+++ /dev/null
@@ -1,266 +0,0 @@
-[
- {
- "config": {
- "advertiserId": "22448662",
- "activityTag": "",
- "groupTag": "",
- "conversionEvents": [
- {
- "eventName": "Product viewed",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv01",
- "salesTag": false,
- "customVariables": [
- {
- "from": "RudderstackProperty1",
- "to": "1"
- },
- {
- "from": "RudderstackProperty2",
- "to": "2"
- }
- ]
- },
- {
- "eventName": "Order Complete",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv02",
- "salesTag": false,
- "customVariables": [
- {
- "from": "",
- "to": ""
- }
- ]
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "advertiserId": "22448662",
- "activityTag": "",
- "groupTag": "",
- "conversionEvents": [
- {
- "eventName": "Product viewed",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv01",
- "salesTag": false,
- "customVariables": [
- {
- "from": "RudderstackProperty1",
- "to": "u1"
- },
- {
- "from": "RudderstackProperty2",
- "to": "2"
- }
- ]
- },
- {
- "eventName": "Order Complete",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv02",
- "salesTag": false,
- "customVariables": [
- {
- "from": "",
- "to": ""
- }
- ]
- }
- ]
- },
- "result": false,
- "err": [
- "conversionEvents.0.customVariables.0.to must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
- ]
- },
- {
- "config": {
- "advertiserId": "12AUXUS123",
- "activityTag": "",
- "groupTag": "",
- "conversionEvents": [
- {
- "eventName": "Product viewed",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv01",
- "salesTag": false,
- "customVariables": [
- {
- "from": "RudderstackProperty1",
- "to": "1"
- },
- {
- "from": "RudderstackProperty2",
- "to": "2"
- }
- ]
- },
- {
- "eventName": "Order Complete",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv02",
- "salesTag": false,
- "customVariables": [
- {
- "from": "",
- "to": ""
- }
- ]
- }
- ]
- },
- "result": false,
- "err": [
- "advertiserId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
- ]
- },
- {
- "config": {
- "advertiserId": "22448662",
- "activityTag": "",
- "groupTag": "",
- "conversionEvents": [
- {
- "eventName": "Product viewed",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv01",
- "salesTag": false,
- "customVariables": [
- {
- "from": "RudderstackProperty1",
- "to": "1"
- },
- {
- "from": "RudderstackProperty2",
- "to": "2"
- }
- ]
- },
- {
- "eventName": "Order Complete",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv02",
- "salesTag": false,
- "customVariables": [
- {
- "from": "",
- "to": ""
- }
- ]
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "conversionLinker": {
- "web": true
- },
- "allowAdPersonalizationSignals": {
- "web": true
- },
- "tagFormat": "globalSiteTag",
- "doubleclickId": {
- "web": true
- },
- "googleNetworkId": {
- "web": "1234"
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "advertiserId": "22448662",
- "activityTag": "",
- "groupTag": "",
- "conversionEvents": [
- {
- "eventName": "Product viewed",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv01",
- "salesTag": false,
- "customVariables": [
- {
- "from": "RudderstackProperty1",
- "to": "1"
- },
- {
- "from": "RudderstackProperty2",
- "to": "2"
- }
- ]
- },
- {
- "eventName": "Order Complete",
- "floodlightActivityTag": "signu01",
- "floodlightGroupTag": "conv02",
- "salesTag": false,
- "customVariables": [
- {
- "from": "",
- "to": ""
- }
- ]
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "conversionLinker": {
- "web": true
- },
- "allowAdPersonalizationSignals": {
- "web": true
- },
- "tagFormat": "iframeTag",
- "doubleclickId": {
- "web": false
- },
- "googleNetworkId": {
- "web": "1234"
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": true
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/deltalake_test.json b/src/validations/__tests__/validation_test_data/deltalake_test.json
deleted file mode 100644
index eb81cc15a..000000000
--- a/src/validations/__tests__/validation_test_data/deltalake_test.json
+++ /dev/null
@@ -1,226 +0,0 @@
-[
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "bucketProvider": "S3",
- "syncFrequency": "30",
- "enableSSE": false,
- "useRudderStorage": false,
- "useSTSTokens": false,
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test-bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "useSSL": true
- },
- "result": false,
- "err": [
- " must have required property 'accountKey'",
- " must have required property 'useSASTokens'",
- " must have required property 'sasToken'",
- " must match a schema in anyOf",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "enableSSE": false,
- "useRudderStorage": false,
- "useSTSTokens": false,
- "syncFrequency": "30",
- "bucketName": "ab..ab",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].*)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test..bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].*)|^((?!goog)(?!.*google.*)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "path": "test-path",
- "token": "test-token",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test--container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].*)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
- " must match \"then\" schema"
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/discord_test.json b/src/validations/__tests__/validation_test_data/discord_test.json
deleted file mode 100644
index 5cda29a3a..000000000
--- a/src/validations/__tests__/validation_test_data/discord_test.json
+++ /dev/null
@@ -1,80 +0,0 @@
-[
- {
- "config": {
- "identifyTemplate": "",
- "webhookUrl": "https://api.discord.com/1234/5678/1457",
- "embedTitleTemplate": "",
- "embedDescriptionTemplate": "",
- "embedFlag": true,
- "eventTemplateSettings": [
- {
- "eventName": "",
- "eventTemplate": "",
- "eventRegex": false
- }
- ],
- "whitelistedTraitsSettings": [
- {
- "trait": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "identifyTemplate": "",
- "webhookUrl": "https://api.discord.com/1234/5678/1457",
- "embedFlag": false,
- "eventTemplateSettings": [
- {
- "eventName": "abc",
- "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
- "eventRegex": false
- }
- ],
- "whitelistedTraitsSettings": [
- {
- "trait": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "identifyTemplate": "",
- "embedTitleTemplate": "Rudderstack Message",
- "embedDescriptionTemplate": " {{name}}",
- "embedFlag": true,
- "webhookUrl": ""
- },
- "result": false,
- "err": [
- "webhookUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(https?|ftp)://[^\\s/$.?#].[^\\s]*$\""
- ]
- },
- {
- "config": {
- "identifyTemplate": "",
- "webhookUrl": "https://api.discord.com/1234/5678/1457",
- "eventTemplateSettings": [
- {
- "eventName": 1234,
- "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
- "eventRegex": "false"
- }
- ],
- "whitelistedTraitsSettings": [
- {
- "trait": ""
- }
- ]
- },
- "result": false,
- "err": [
- "eventTemplateSettings.0.eventName must be string",
- "eventTemplateSettings.0.eventRegex must be boolean"
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/facebook_pixel_test.json b/src/validations/__tests__/validation_test_data/facebook_pixel_test.json
deleted file mode 100644
index 7c039b233..000000000
--- a/src/validations/__tests__/validation_test_data/facebook_pixel_test.json
+++ /dev/null
@@ -1,202 +0,0 @@
-[
- {
- "config": {
- "pixelId": "471828257250906",
- "accessToken": "EABAKGVmm4FjBAKAHtWZB4er7fVTjFdJD33daH3ZB340qWk7Nv9MwZCOE0f27EKZA1LQxkQD8hQy1ZBb3SkIgeLcqZAbVtVXbpumoOtpqkP9fRqM0bZCeozeWkH3Y4TZCUpUeUsgKwGDqZB9QrrZCGwRcF9YZAvPDjZAT0YJjWNWQCKhnMQ2OEnrjtJmJgsWDicELxEAZD",
- "standardPageCall": true,
- "valueFieldIdentifier": "properties.price",
- "advancedMapping": false,
- "limitedDataUSage": false,
- "testDestination": false,
- "testEventCode": "",
- "eventFilteringOption": "whitelistedEvents",
- "eventsToEvents": [
- {
- "from": "named",
- "to": "class"
- }
- ],
- "eventCustomProperties": [
- {
- "eventCustomProperties": "custom101"
- }
- ],
- "blacklistPiiProperties": [
- {
- "blacklistPiiProperties": "",
- "blacklistPiiHash": true
- }
- ],
- "whitelistPiiProperties": [
- {
- "whitelistPiiProperties": "passed"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "login"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "adblocker_disabled"
- }
- ],
- "categoryToContent": [
- {
- "from": "app_signup",
- "to": "completed"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "accessToken": "EABAKGVmm4FjB7fVTjFdJD33daH3ZB340qWk7Nv9MwZCOE0f27EKZA1LQxkQD8hQy1ZBb3SkIgeLcqZAbVtVXbpumoOtpqkP9fRqM0bZCeozeWkH3Y4TZCUpUeUsgKwGDqZB9QrrZCGwRcF9YZAvPDjZAT0YJjWNWQCKhnMQ2OEnrjtJmJgsWDicELxEAZD",
- "standardPageCall": false,
- "valueFieldIdentifier": "properties.price",
- "advancedMapping": false,
- "limitedDataUSage": true,
- "testDestination": false,
- "testEventCode": "",
- "eventFilteringOption": "whitelistedEvents",
- "eventsToEvents": [
- {
- "from": "name",
- "to": "grade"
- }
- ],
- "eventCustomProperties": [
- {
- "eventCustomProperties": "remarks"
- }
- ],
- "blacklistPiiProperties": [
- {
- "blacklistPiiProperties": "",
- "blacklistPiiHash": true
- }
- ],
- "whitelistPiiProperties": [
- {
- "whitelistPiiProperties": "passed"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "categoryToContent": [
- {
- "from": "app_signup",
- "to": "completed"
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'pixelId'"]
- },
- {
- "config": {
- "pixelId": "295131421571462",
- "advancedMapping": false,
- "blacklistPiiProperties": [
- {
- "blacklistPiiProperties": "",
- "blacklistPiiHash": false
- }
- ],
- "eventsToEvents": [
- {
- "from": "PageView",
- "to": "ViewContent"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": true
- },
- {
- "config": {
- "pixelId": "457112234567291",
- "accessToken": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
- "standardPageCall": false,
- "valueFieldIdentifier": "properties.price",
- "advancedMapping": false,
- "limitedDataUSage": false,
- "testDestination": false,
- "testEventCode": "TEST83176",
- "eventFilteringOption": "disable",
- "eventsToEvents": [
- {
- "from": "app terminated",
- "to": "close"
- },
- {
- "from": "app installed",
- "to": "init"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": true
- },
- {
- "config": {
- "pixelId": "457112234567291",
- "accessToken": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
- "standardPageCall": false,
- "valueFieldIdentifier": "properties.price",
- "advancedMapping": false,
- "limitedDataUSage": true,
- "testDestination": true,
- "testEventCode": "TEST1010",
- "eventFilteringOption": "disable",
- "eventsToEvents": [
- {
- "from": "app terminated",
- "to": "close"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": true
- },
- {
- "config": {
- "pixelId": "457112234567291",
- "accessToken": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
- "standardPageCall": false,
- "valueFieldIdentifier": "properties.price",
- "advancedMapping": false,
- "limitedDataUSage": false,
- "testDestination": true,
- "testEventCode": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
- "eventFilteringOption": "disable",
- "eventsToEvents": [
- {
- "from": "app terminated",
- "to": "close"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": false,
- "err": ["testEventCode must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/freshmarketer_test.json b/src/validations/__tests__/validation_test_data/freshmarketer_test.json
deleted file mode 100644
index aa868af47..000000000
--- a/src/validations/__tests__/validation_test_data/freshmarketer_test.json
+++ /dev/null
@@ -1,43 +0,0 @@
-[
- {
- "config": {
- "apiKey": "",
- "domain": "mytest-1234"
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "adhs123-adhs123-adhs3",
- "domain": "mytest-1234"
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "adhs123-adhs123-adhs3"
- },
- "result": false,
- "err": [" must have required property 'domain'"]
- },
- {
- "config": {
- "domain": "mytest-1234"
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "config": {
- "apiKey": "adhs123-adhs123-adhs3",
- "domain": ""
- },
- "result": false,
- "err": [
- "domain must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/freshsales_test.json b/src/validations/__tests__/validation_test_data/freshsales_test.json
deleted file mode 100644
index aa868af47..000000000
--- a/src/validations/__tests__/validation_test_data/freshsales_test.json
+++ /dev/null
@@ -1,43 +0,0 @@
-[
- {
- "config": {
- "apiKey": "",
- "domain": "mytest-1234"
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "adhs123-adhs123-adhs3",
- "domain": "mytest-1234"
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "adhs123-adhs123-adhs3"
- },
- "result": false,
- "err": [" must have required property 'domain'"]
- },
- {
- "config": {
- "domain": "mytest-1234"
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "config": {
- "apiKey": "adhs123-adhs123-adhs3",
- "domain": ""
- },
- "result": false,
- "err": [
- "domain must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/ga4_test.json b/src/validations/__tests__/validation_test_data/ga4_test.json
deleted file mode 100644
index 9f0cd7902..000000000
--- a/src/validations/__tests__/validation_test_data/ga4_test.json
+++ /dev/null
@@ -1,167 +0,0 @@
-[
- {
- "config": {
- "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
- "typesOfClient": "gtag",
- "measurementId": "G-T40PE6KET4",
- "firebaseAppId": "",
- "blockPageViewEvent": true,
- "extendPageViewParams": true,
- "sendUserId": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": {
- "web": false
- },
- "debugMode" : false,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": false,
- "sendLoginSignup": false,
- "generateLead": false
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
- "typesOfClient": "gtag",
- "measurementId": "F40RN6STS2",
- "firebaseAppId": "",
- "blockPageViewEvent": true,
- "extendPageViewParams": true,
- "sendUserId": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": {
- "web": false
- },
- "debugMode" : false,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": false,
- "sendLoginSignup": false,
- "generateLead": false
- },
- "result": false,
- "err": [
- "measurementId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(G-.{1,100})$|^$\""
- ]
- },
- {
- "config": {
- "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
- "typesOfClient": "firebase",
- "measurementId": "G-T40PE6KET4",
- "firebaseAppId": "2:637908496727:web:a4284b4c99e329d5",
- "blockPageViewEvent": true,
- "extendPageViewParams": true,
- "sendUserId": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": {
- "web": false
- },
- "debugMode" : false,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": false,
- "sendLoginSignup": false,
- "generateLead": false
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
- "measurementId": "G-T40PE6KET4",
- "blockPageViewEvent": true,
- "extendPageViewParams": true,
- "sendUserId": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": {
- "web": true
- },
- "debugMode" : true,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": false,
- "sendLoginSignup": false,
- "generateLead": false
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
- "typesOfClient": "firebase",
- "measurementId": "G-T40PE6KET4",
- "blockPageViewEvent": true,
- "extendPageViewParams": true,
- "sendUserId": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": {
- "web": false
- },
- "debugMode" : false,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": false,
- "sendLoginSignup": false,
- "generateLead": false
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
- "measurementId": "G-T40PE6KET4",
- "typesOfClient": "firebase",
- "firebaseAppId": "2:637908496727:web:a4284b4c99e329d5",
- "blockPageViewEvent": true,
- "extendPageViewParams": true,
- "sendUserId": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": {
- "web": false
- },
- "debugMode" : false,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": false,
- "sendLoginSignup": false,
- "generateLead": false
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "JjWUIHj4QhG2L7eZDZiXCA",
- "typesOfClient": "gtag",
- "blockPageViewEvent": false,
- "extendPageViewParams": false,
- "sendUserId": false,
- "eventFilteringOption": "disable",
- "measurementId": "G-F40RN6STS2",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "firebaseAppId": "",
- "useNativeSDK": {
- "web": false
- },
- "debugMode" : false,
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
- "enableServerSideIdentify": true,
- "sendLoginSignup": true,
- "newOrExistingUserTrait": "firstLogin",
- "loginSignupMethod": "method",
- "generateLead": true,
- "generateLeadValueTrait": "value",
- "generateLeadCurrencyTrait": "currency"
- },
- "result": true
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/ga_test.json b/src/validations/__tests__/validation_test_data/ga_test.json
deleted file mode 100644
index 1175fd154..000000000
--- a/src/validations/__tests__/validation_test_data/ga_test.json
+++ /dev/null
@@ -1,302 +0,0 @@
-[
- {
- "config": {
- "trackingID": "UA-152564043-4",
- "eventFilteringOption": "whitelistedEvents",
- "doubleClick": false,
- "enhancedLinkAttribution": false,
- "includeSearch": false,
- "enableServerSideIdentify": false,
- "serverSideIdentifyEventCategory": "",
- "serverSideIdentifyEventAction": "",
- "disableMd5": false,
- "anonymizeIp": false,
- "enhancedEcommerce": false,
- "nonInteraction": false,
- "sendUserId": true,
- "contentGroupings": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "dimensions": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "testing01"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "untested110"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "doubleClick": false,
- "enhancedLinkAttribution": true,
- "includeSearch": false,
- "enableServerSideIdentify": false,
- "serverSideIdentifyEventCategory": "",
- "serverSideIdentifyEventAction": "",
- "disableMd5": false,
- "anonymizeIp": true,
- "enhancedEcommerce": true,
- "nonInteraction": false,
- "sendUserId": false,
- "useNativeSDK": {
- "web": true
- },
- "trackCategorizedPages": {
- "web": true
- },
- "trackNamedPages": {
- "web": true
- },
- "sampleRate": {
- "web": "100"
- },
- "siteSpeedSampleRate": {
- "web": "1"
- },
- "resetCustomDimensionsOnPage": {
- "web": [
- {
- "resetCustomDimensionsOnPage": ""
- }
- ]
- },
- "setAllMappedProps": {
- "web": true
- },
- "domain": {
- "web": "auto"
- },
- "optimize": {
- "web": ""
- },
- "useGoogleAmpClientId": {
- "web": false
- },
- "namedTracker": {
- "web": false
- },
- "contentGroupings": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "dimensions": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "blacklistedEvents": [],
- "whitelistedEvents": []
- },
- "result": false,
- "err": [" must have required property 'trackingID'"]
- },
- {
- "config": {
- "trackingID": "{{ config.tc || UA-151524043-4 }}",
- "eventFilteringOption": "whitelistedEvents",
- "doubleClick": false,
- "enhancedLinkAttribution": false,
- "includeSearch": false,
- "enableServerSideIdentify": false,
- "serverSideIdentifyEventCategory": "",
- "serverSideIdentifyEventAction": "",
- "disableMd5": false,
- "anonymizeIp": false,
- "enhancedEcommerce": false,
- "nonInteraction": false,
- "sendUserId": false,
- "contentGroupings": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "dimensions": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "testing01"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "untested110"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "trackingID": "UA-147418433-1",
- "doubleClick": true,
- "enhancedLinkAttribution": true,
- "includeSearch": true,
- "enableServerSideIdentify": false,
- "serverSideIdentifyEventCategory": "",
- "serverSideIdentifyEventAction": "",
- "anonymizeIp": false,
- "enhancedEcommerce": false,
- "nonInteraction": false,
- "sendUserId": false,
- "contentGroupings": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "dimensions": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "useNativeSDK": {
- "web": false
- },
- "sampleRate": {
- "web": "100"
- },
- "siteSpeedSampleRate": {
- "web": "1"
- },
- "namedTracker": {
- "web": false
- },
- "disableMd5": true
- },
- "result": true
- },
- {
- "config": {
- "trackingID": "UA-45731234-5",
- "doubleClick": true,
- "enhancedLinkAttribution": true,
- "includeSearch": false,
- "enableServerSideIdentify": "disable",
- "serverSideIdentifyEventCategory": "",
- "serverSideIdentifyEventAction": "",
- "disableMd5": false,
- "anonymizeIp": false,
- "enhancedEcommerce": false,
- "nonInteraction": false,
- "sendUserId": true,
- "useNativeSDK": {
- "web": false
- },
- "trackCategorizedPages": {
- "web": true
- },
- "trackNamedPages": {
- "web": true
- },
- "sampleRate": {
- "web": "100"
- },
- "siteSpeedSampleRate": {
- "web": "1"
- },
- "resetCustomDimensionsOnPage": {
- "web": [
- {
- "resetCustomDimensionsOnPage": ""
- }
- ]
- },
- "contentGroupings": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "dimensions": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "setAllMappedProps": {
- "web": true
- },
- "domain": {
- "web": "auto"
- },
- "optimize": {
- "web": ""
- },
- "useGoogleAmpClientId": {
- "web": false
- },
- "namedTracker": {
- "web": false
- },
- "blacklistedEvents": [],
- "whitelistedEvents": []
- },
- "result": false,
- "err": ["enableServerSideIdentify must be boolean"]
- },
- {
- "config": {
- "trackingID": "UA-147128492-1",
- "doubleClick": true,
- "enhancedLinkAttribution": true,
- "includeSearch": true,
- "enableServerSideIdentify": false,
- "serverSideIdentifyEventCategory": "{{ serverside.config.ct || categoryVal }}",
- "serverSideIdentifyEventAction": "wqerasfdhjgfvbvbasfdhjgfvbvbjkjjkjigywddhjgfvbvbasfdhjgfvbvbjkjjkjigywdasfdhjgfasfdhjgfvbvbjkjfewddhjgfvbvbasfdhjgfvbvbjkjjkjigywdasfdhjgf",
- "anonymizeIp": false,
- "enhancedEcommerce": false,
- "nonInteraction": false,
- "sendUserId": false,
- "useNativeSDK": {
- "web": false
- },
- "contentGroupings": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "dimensions": [
- {
- "from": "topic",
- "to": "contentGroup1"
- }
- ],
- "sampleRate": {
- "web": "100"
- },
- "siteSpeedSampleRate": {
- "web": "1"
- },
- "namedTracker": {
- "web": false
- },
- "disableMd5": true
- },
- "result": false,
- "err": ["serverSideIdentifyEventAction must match pattern \"(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)\""]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/gcs_test.json b/src/validations/__tests__/validation_test_data/gcs_test.json
deleted file mode 100644
index ab9c8622e..000000000
--- a/src/validations/__tests__/validation_test_data/gcs_test.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[
- {
- "config": {
- "bucketName": "event-logs",
- "prefix": "sb",
- "credentials": "{\n \"type\": \"service_account\",\n \"project_id\": \"zendeskapp-52b17\",\n \"private_key_id\": \"5c06b82205fee64749cf031ec7b3ff0bafca8c12\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3OaB3J8FIcsT8\\nUL1e8TruKgZDNOdAbigSteA70Ptzv2N37+LtvRENpNVsEGkP2PPu53er8jlUV9PR\\nrBXpRjS06rFhld6E2wZ2Psp5XAdHTSLTpfIX6Ly4hyn5BlhTlT0ZEEjBqvi4q6TL\\nw369rVJaymzo3U+6E617Ggt2E5E0ZfjYoEXKF2FWf7G79EBen+sVu2YrEz80S/9E\\nhrsiXGbfApLcs/CkL7eEbFmfspW5niCoYKca7AhG0uHQC4yfH9w1GbZtRvsc3dij\\npwL3+iYpUMAwfQkDCbuCjFqgpSxFzlD88Px6q5J6W59y0k0gO6bkouxL6NNPoOME\\nUNGi/noPAgMBAAECggEAGof9LOk0SzsskVlYT+cAFgbpeOeFtDuJ5kpbdGiVU1Q7\\ni91QJQW+HOrT6VMnq3RKajsuhdb20eLqg093Asbi5e71YtXn7qFP5Q/APjotvEzh\\nRfgfFLLjn5gZjfuLDwYACWDlcCnDh0DPhZ6YJntyU+mWQ1KcngCwcQVl8yHv4kAX\\nmE+C8hb12IDEsX1rB09DJSt0FqMFvwJP+PGFbOSefSykbdE6bsJpKgGlHO9FDxtk\\nieZcm2ODqocvbjWko93yWZ/Ozun9zx/59d3DVBd/EEmbzFq/OV+m7ZmcXw5mOZmg\\ntYNvQhPoXHLJQ91DE58z0Hqo5HYjys40zrLnST7A3QKBgQDpDoz8ZL2o7KK9Iyl9\\npm8xXCWxflep1w6gXjksrjsIbmw2+x3mTsmVW6i++w6eea7tGcIVQvuQlCKU+FnR\\n0eHzdrhpWrkIuLegdZ46sguXEUxcU9j6heR3aKE//z/0CIHA4hyvxJtUTf0slErJ\\n09I6xOdgVkWZctnqijSV85VejQKBgQDJQzoszq6Fm/kPNNi4Z2gZlRQq+yievNQV\\nO+4hrcONoHZNyYYHGMYqmbyZu5doltgYyMdDXzMMReJPjCnOE3McA7x5PE9jLiKa\\nMp5lcfUS81RODE+me7OA6rfIUkoNMJxYhV0TSZVBXpAxDoF/r9IZ0tQbiGRXkbhr\\nGyhAYAOSCwKBgQCodcgbOIaPcF1B8gSvunptZ3onjne3YKhF61XQojAxq/+0zleS\\nfijgOV0Ej1zF2JdE83WDAOPuYeWNYOcr71YwMgSiwt01HLA+4EX7j28pR2u24TTa\\nAaZfWdYU+GA1+WAxGEA8HRVaHvV+H8LfmKlBqcrFrBarEIXMLxJLwcKakQKBgFmf\\nlkhdwVm+GyqqXdfANJsvx8tcDLqjW84Y4fIdbveifQwmsYh3f8d4roPHBaWNhq2C\\nuzlFK3ZLqHvD7tnVz2yqPUO/l5qS8NW5tM9376qAsQoQcWexrj26SBzsiA1XmEfT\\nG597JPv3ID64NvKlWOom+E1Kb2SPf5Ayh7ojB3QBAoGAF6Jbeo3X+H12EOrPzVIV\\neUcJO2yWt7XNrGoXgLd7Hb4R9BNl8AAJqaZ9fvpTXCWNNRbaR829wuLecrc+MOJF\\n6N8Cd1s+Mjih4FE8OKVbrtc0IgM+hh2ryGrvRRF9SIDLOrEDxnsqLOHDld8FEIfl\\naOoM4S4ZRMyf2VvgqH2Lnsw=\\n-----END PRIVATE KEY-----\\n\",\n \"client_email\": \"rudderstack@zendeskapp-52b17.iam.gserviceaccount.com\",\n \"client_id\": \"101630212963057039580\",\n \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n \"token_uri\": \"https://oauth2.googleapis.com/token\",\n \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/rudderstack%40zendeskapp-52b17.iam.gserviceaccount.com\"\n}",
- "testConnection": false
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "rudderstack-test-1",
- "prefix": "rudder",
- "credentials": ""
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "Active Campaign NHN",
- "prefix": "",
- "credentials": "",
- "testConnection": false,
- "testConnectionTS": 1621944688891
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "fasdfsa",
- "credentials": "{\nsadfas:\"asdf\"\n}"
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "",
- "credentials": "{\nsadfas:\"asdf\"\n}"
- },
- "result": false,
- "err": [
- " must have required property 'bucketName'"
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/google_cloud_function_test.json b/src/validations/__tests__/validation_test_data/google_cloud_function_test.json
deleted file mode 100644
index 636c4537f..000000000
--- a/src/validations/__tests__/validation_test_data/google_cloud_function_test.json
+++ /dev/null
@@ -1,21 +0,0 @@
-[
- {
- "config": {
- "triggerType": "Http",
- "googleCloudFunctionUrl": "http://sample.com/url",
- "apiKeyId": "1d6583b196d34de28a3g19ahadde4b0z"
- },
- "result": true
- },
- {
- "config": {
- "triggerType": "Http",
- "googleCloudFunctionUrl": "http://sample.com/url",
- "apiKeyId": "1d6583b196d34de28a3g19ahadde4b0z"
- },
- "result": false,
- "err": [
- "GCF url must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/googleads_test.json b/src/validations/__tests__/validation_test_data/googleads_test.json
deleted file mode 100644
index 0313883c3..000000000
--- a/src/validations/__tests__/validation_test_data/googleads_test.json
+++ /dev/null
@@ -1,209 +0,0 @@
-[
- {
- "config": {
- "conversionID": "AW-12321",
- "eventFilteringOption": "whitelistedEvents",
- "defaultPageConversion": "poiiopqwewqwwqewq",
- "sendPageView": true,
- "conversionLinker": true,
- "disableAdPersonalization": true,
- "whitelistedEvents": [
- {
- "eventName": "login page"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "pageLoadConversions": [
- {
- "conversionLabel": "ofwinqeoqwefnoewqo9",
- "name": "test"
- }
- ],
- "clickEventConversions": [
- {
- "conversionLabel": "1qinqwqoqewfnoewqo9",
- "name": "clickTest"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "dynamicRemarketing": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Sales"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "conversionID": "AW-12321",
- "eventFilteringOption": "whitelistedEvents",
- "defaultPageConversion": "poiiopqwewqwwqewq",
- "sendPageView": true,
- "conversionLinker": true,
- "disableAdPersonalization": true,
- "whitelistedEvents": [
- {
- "eventName": "login page"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "pageLoadConversions": [
- {
- "conversionLabel": "ofwinqeoqwefnoewqo9",
- "name": "test"
- },
- {
- "conversionLabel": "idwhcbiwdfbciwdfw",
- "name": "entry"
- }
- ],
- "clickEventConversions": [
- {
- "conversionLabel": "1qinqwqoqewfnoewqo9",
- "name": "clickTest"
- },
- {
- "conversionLabel": "qwertyasagehrstshregs",
- "name": "clickedPrev"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "dynamicRemarketing": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Business Tool"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "conversionID": "AW-114432",
- "useNativeSDK": {
- "web": true
- },
- "dynamicRemarketing": {
- "web": true
- }
- },
- "result": true
- },
- {
- "config": {
- "eventFilteringOption": "whitelistedEvents",
- "defaultPageConversion": "poiiopqwewqwwqewq",
- "sendPageView": true,
- "conversionLinker": true,
- "disableAdPersonalization": true,
- "whitelistedEvents": [
- {
- "eventName": "login page"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "pageLoadConversions": [
- {
- "conversionLabel": "ofwinqeoqwefnoewqo9",
- "name": "test"
- }
- ],
- "clickEventConversions": [
- {
- "conversionLabel": "1qinqwqoqewfnoewqo9",
- "name": "clickTest"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "dynamicRemarketing": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Sales"
- }
- ]
- }
- },
- "result": false,
- "err": [" must have required property 'conversionID'"]
- },
- {
- "config": {
- "conversionID": "AW-12321",
- "eventFilteringOption": "whitelistedEvents",
- "defaultPageConversion": "poiiopqwewqwwqewq",
- "sendPageView": {
- "sendPageView": true
- },
- "conversionLinker": true,
- "disableAdPersonalization": true,
- "whitelistedEvents": [
- {
- "eventName": "login page"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "pageLoadConversions": [
- {
- "conversionLabel": "ofwinqeoqwefnoewqo9",
- "name": "test"
- }
- ],
- "clickEventConversions": [
- {
- "conversionLabel": "1qinqwqoqewfnoewqo9",
- "name": "clickTest"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "dynamicRemarketing": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": ["sendPageView must be boolean"]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/gtm_test.json b/src/validations/__tests__/validation_test_data/gtm_test.json
deleted file mode 100644
index 079bb61d0..000000000
--- a/src/validations/__tests__/validation_test_data/gtm_test.json
+++ /dev/null
@@ -1,75 +0,0 @@
-[
- {
- "config": {
- "containerID": "GTM-ADDA",
- "serverUrl": "https://gtm.rudder.com",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "registration"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": []
- }
- },
- "result": true
- },
- {
- "config": {
- "serverUrl": "https://gtm.rudder.com",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "registration"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": []
- }
- },
- "result": false,
- "err": [" must have required property 'containerID'"]
- },
- {
- "config": {
- "containerID": "GTM-ADDA",
- "serverUrl": "badurl",
- "eventFilteringOption": "whitelistedEvents",
- "whitelistedEvents": [
- {
- "eventName": "registration"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "oneTrustCookieCategories": {
- "web": []
- }
- },
- "result": false,
- "err": ["serverUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\""]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/iterable_test.json b/src/validations/__tests__/validation_test_data/iterable_test.json
deleted file mode 100644
index 65dcc746e..000000000
--- a/src/validations/__tests__/validation_test_data/iterable_test.json
+++ /dev/null
@@ -1,93 +0,0 @@
-[
- {
- "config": {
- "apiKey": "73983282843839749873",
- "mapToSingleEvent": true,
- "trackAllPages": false,
- "trackCategorisedPages": true,
- "trackNamedPages": true,
- "useNativeSDK": {
- "web": true
- },
- "initialisationIdentifier": {
- "web": "email"
- },
- "getInAppEventMapping": {
- "web": [
- {
- "eventName": "sale notification"
- },
- {
- "eventName": "festival discount"
- }
- ]
- },
- "purchaseEventMapping": {
- "web": [
- {
- "eventName": "Checkout Done"
- }
- ]
- },
- "sendTrackForInapp": {
- "web": true
- },
- "animationDuration": {
- "web": "200"
- },
- "displayInterval": {
- "web": "2500"
- },
- "onOpenScreenReaderMessage": {
- "web": ""
- },
- "onOpenNodeToTakeFocus": {
- "web": ""
- },
- "packageName": {
- "web": "my-package-test"
- },
- "rightOffset": {
- "web": "15"
- },
- "topOffset": {
- "web": "11"
- },
- "bottomOffset": {
- "web": "24%"
- },
- "handleLinks": {
- "web": "open-all-new-tab"
- },
- "closeButtonColor": {
- "web": "blue"
- },
- "closeButtonSize": {
- "web": ""
- },
- "closeButtonColorTopOffset": {
- "web": "3%"
- },
- "closeButtonColorSideOffset": {
- "web": "2%"
- },
- "iconPath": {
- "web": ""
- },
- "isRequiredToDismissMessage": {
- "web": true
- },
- "closeButtonPosition": {
- "web": ""
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": true
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/lambda_test.json b/src/validations/__tests__/validation_test_data/lambda_test.json
deleted file mode 100644
index 44692f197..000000000
--- a/src/validations/__tests__/validation_test_data/lambda_test.json
+++ /dev/null
@@ -1,67 +0,0 @@
-[
- {
- "config": {
- "accessKeyId": "bSjsdGYsOo9sjw23Shj",
- "accessKey": "1d6583b196d34de28a3g19ahadde4b0z",
- "roleBasedAuth": false,
- "region": "us-east-1"
- },
- "result": false,
- "err": [" must have required property 'lambda'"]
- },
- {
- "config": {
- "accessKeyId": "bSjsdGYsOo9sjw23-_(Shj",
- "accessKey": "1d6583b196d34de28a3g19ahadde4b0z",
- "roleBasedAuth": false,
- "region": "us-east-1",
- "lambda": "myFunction"
- },
- "result": true
- },
- {
- "config": {
- "accessKeyId": "bSjsdGYsOo9sjw23-_(Shj",
- "accessKey": "1d6583b196d34de28a3g19ahadde4b0z",
- "roleBasedAuth": false,
- "region": "ufgrgrt",
- "lambda": "myFunction"
- },
- "result": true
- },
- {
- "config": {
- "iamRoleARN": "arn:aws:iam::123456789012:role/LambdaAccess",
- "externalID": "1d6583b196d34de28a3g19ahadde4b0z",
- "roleBasedAuth": true,
- "region": "us-east-2",
- "lambda": "myFunction",
- "maxBatchSize": "50"
- },
- "result": true
- },
- {
- "config": {
- "iamRoleARN": "arn:aws:iam::123456789012:role/LambdaAccess",
- "externalID": 1,
- "roleBasedAuth": true,
- "region": "us-east-2",
- "lambda": "myFunction",
- "maxBatchSize": "50"
- },
- "result": false,
- "err": ["externalID must be string"]
- },
- {
- "config": {
- "iamRoleARN": "arn:aws:iam::123456789012:role/LambdaAccess",
- "externalID": "1d6583b196d34de28a3g19ahadde4b0z",
- "roleBasedAuth": true,
- "region": "us-east-2",
- "lambda": "myFunction",
- "maxBatchSize": "vsrbsr"
- },
- "result": false,
- "err": ["maxBatchSize must match pattern \"^$|^[1-9]\\d*$\""]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/marketo_static_list_test.json b/src/validations/__tests__/validation_test_data/marketo_static_list_test.json
deleted file mode 100644
index 09ee39754..000000000
--- a/src/validations/__tests__/validation_test_data/marketo_static_list_test.json
+++ /dev/null
@@ -1,31 +0,0 @@
-[{
- "config": {
- "clientId":"893yh2ef823yf0",
- "clientSecret":"238923hr2o08f",
- "accountId": "di0e298dy23r982f",
- "staticListId":"9031"
- },
- "result": true
- },
- {
- "config": {
- "clientId":"32313124",
- "clientSecret":"113442",
- "accountId": "aaa",
- "staticListId":"9031"
- },
- "result": true
- },
- {
- "config": {
- "clientId":"893yh2ef823yf0",
- "clientSecret":"238923hr2o08f",
- "accountId": "",
- "staticListId":"9031"
- },
- "result": false,
- "err": [
- "accountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }]
-
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/matomo_test.json b/src/validations/__tests__/validation_test_data/matomo_test.json
deleted file mode 100644
index d8c4cb2ff..000000000
--- a/src/validations/__tests__/validation_test_data/matomo_test.json
+++ /dev/null
@@ -1,189 +0,0 @@
-[
- {
- "config": {
- "siteId": "1",
- "serverUrl": "com.yara.fw.stage",
- "eventsMapToGoalId": [
- {
- "from": "Set GoalId",
- "to": "123"
- }
- ],
- "eventsToStandard": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ],
- "trackAllContentImpressions": true,
- "trackVisibleContentImpressions": true,
- "checkOnScroll": true,
- "timeIntervalInMs": "15",
- "logAllContentBlocksOnPage": true,
- "enableHeartBeatTimer": true,
- "activeTimeInseconds": "25",
- "enableLinkTracking": true,
- "disablePerformanceTracking": true,
- "enableCrossDomainLinking": true,
- "setCrossDomainLinkingTimeout": true,
- "timeout": "10",
- "getCrossDomainLinkingUrlParameter": true,
- "disableBrowserFeatureDetection": true
- },
- "result": true
- },
- {
- "config": {
- "siteId": "1",
- "serverUrl": "com.yara.fw.stage",
- "eventsMapToGoalId": [
- {
- "from": "Set GoalId",
- "to": "123"
- }
- ],
- "eventsToStandard": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ],
- "trackAllContentImpressions": true,
- "trackVisibleContentImpressions": true,
- "checkOnScroll": false,
- "timeIntervalInMs": "15b",
- "logAllContentBlocksOnPage": true,
- "enableHeartBeatTimer": true,
- "activeTimeInseconds": "25",
- "enableLinkTracking": true,
- "disablePerformanceTracking": true,
- "enableCrossDomainLinking": true,
- "setCrossDomainLinkingTimeout": true,
- "timeout": "10",
- "getCrossDomainLinkingUrlParameter": true,
- "disableBrowserFeatureDetection": true
- },
- "result": false,
- "err": [
- "timeIntervalInMs must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "siteId": "3",
- "serverUrl": "com.yara.fw.stage",
- "eventsMapToGoalId": [
- {
- "from": "Set GoalId",
- "to": "123"
- }
- ],
- "eventsToStandard": [
- {
- "from": "Track Ping",
- "to": "ping"
- },
- {
- "from": "Test",
- "to": "Track Link"
- }
- ],
- "trackAllContentImpressions": true,
- "trackVisibleContentImpressions": true,
- "checkOnScroll": true,
- "timeIntervalInMs": "15",
- "logAllContentBlocksOnPage": true,
- "enableHeartBeatTimer": true,
- "activeTimeInseconds": "",
- "enableLinkTracking": true,
- "disablePerformanceTracking": true,
- "enableCrossDomainLinking": true,
- "setCrossDomainLinkingTimeout": true,
- "timeout": "10",
- "getCrossDomainLinkingUrlParameter": true,
- "disableBrowserFeatureDetection": true
- },
- "result": false,
- "err": [
- "activeTimeInseconds must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "siteId": "3",
- "serverUrl": "com.yara.fw.stage",
- "eventsMapToGoalId": [
- {
- "from": "Set GoalId",
- "to": "123"
- }
- ],
- "eventsToStandard": [
- {
- "from": "Track Ping",
- "to": "ping"
- },
- {
- "from": "Test",
- "to": "Track Link"
- }
- ],
- "trackAllContentImpressions": true,
- "trackVisibleContentImpressions": true,
- "checkOnScroll": true,
- "timeIntervalInMs": "15",
- "logAllContentBlocksOnPage": true,
- "enableHeartBeatTimer": true,
- "activeTimeInseconds": "5",
- "enableLinkTracking": true,
- "disablePerformanceTracking": false,
- "enableCrossDomainLinking": false,
- "setCrossDomainLinkingTimeout": true,
- "timeout": "",
- "getCrossDomainLinkingUrlParameter": false,
- "disableBrowserFeatureDetection": false
- },
- "result": false,
- "err": [
- "timeout must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "serverUrl": "com.yara.fw.stage",
- "eventsMapToGoalId": [],
- "eventsToStandard": [],
- "trackAllContentImpressions": false,
- "trackVisibleContentImpressions": false,
- "logAllContentBlocksOnPage": false,
- "enableHeartBeatTimer": false,
- "enableLinkTracking": false,
- "disablePerformanceTracking": false,
- "enableCrossDomainLinking": false,
- "setCrossDomainLinkingTimeout": false,
- "getCrossDomainLinkingUrlParameter": false,
- "disableBrowserFeatureDetection": false
- },
- "result": false,
- "err": [" must have required property 'siteId'"]
- },
- {
- "config": {
- "siteId": "34b",
- "serverUrl": "com.yara.fw.stage",
- "eventsMapToGoalId": [],
- "eventsToStandard": [],
- "trackAllContentImpressions": true,
- "trackVisibleContentImpressions": false,
- "logAllContentBlocksOnPage": false,
- "enableHeartBeatTimer": false,
- "enableLinkTracking": false,
- "disablePerformanceTracking": false,
- "enableCrossDomainLinking": false,
- "setCrossDomainLinkingTimeout": false,
- "getCrossDomainLinkingUrlParameter": false,
- "disableBrowserFeatureDetection": false
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/mautic_test.json b/src/validations/__tests__/validation_test_data/mautic_test.json
deleted file mode 100644
index 437316ba4..000000000
--- a/src/validations/__tests__/validation_test_data/mautic_test.json
+++ /dev/null
@@ -1,59 +0,0 @@
-[
- {
- "config": {
- "userName": "abc@work.com",
- "password": "1234yui",
- "subDomainName": "work",
- "lookUpField": "email"
- },
- "result": true
- },
- {
- "config": {
- "userName": "abc@test.com",
- "password": "1234yui",
- "subDomainName": "work",
- "lookUpField": ""
- },
- "result": false,
- "err": [
- "lookUpField must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "userName": "abc@work.com",
- "password": "",
- "subDomainName": "work",
- "lookUpField": "email"
- },
- "result": false,
- "err": [
- "password must match pattern \"(^env[.].+)|.+\""
- ]
- },
- {
- "config": {
- "userName": "abc@work.com",
- "password": "1234yui",
- "subDomainName": "",
- "lookUpField": "email"
- },
- "result": false,
- "err": [
- "subDomainName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "userName": "",
- "password": "1234yui",
- "subDomainName": "work",
- "lookUpField": "email"
- },
- "result": false,
- "err": [
- "userName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/microsoft_clarity_test.json b/src/validations/__tests__/validation_test_data/microsoft_clarity_test.json
deleted file mode 100644
index 41921659b..000000000
--- a/src/validations/__tests__/validation_test_data/microsoft_clarity_test.json
+++ /dev/null
@@ -1,78 +0,0 @@
-[
- {
- "config": {
- "cookieConsent": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'projectId'"]
- },
- {
- "config": {
- "projectId": "",
- "cookieConsent": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [
- "projectId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "projectId": "ej81fqgqfc",
- "cookieConsent": "true",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": ["cookieConsent must be boolean"]
- },
- {
- "config": {
- "projectId": "ej81fqgqfc",
- "cookieConsent": false,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/monday_test.json b/src/validations/__tests__/validation_test_data/monday_test.json
deleted file mode 100644
index d5184b3db..000000000
--- a/src/validations/__tests__/validation_test_data/monday_test.json
+++ /dev/null
@@ -1,75 +0,0 @@
-[
- {
- "config": {
- "apiToken": "",
- "boardId": "483949233",
- "groupTitle": "",
- "columnToPropertyMapping": [
- {
- "from": "Work Status",
- "to": "status"
- }
- ],
- "whitelistedEvents": [{ "eventName": "" }]
- },
- "result": false,
- "err": [
- "apiToken must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$\""
- ]
- },
- {
- "config": {
- "apiToken": "eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
- "boardId": "",
- "groupTitle": "",
- "columnToPropertyMapping": [
- {
- "from": "Work Status",
- "to": "status"
- }
- ],
- "whitelistedEvents": [{ "eventName": "Product added to cart" }]
- },
- "result": false,
- "err": [
- "boardId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiToken": "eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
- "boardId": "323826323",
- "groupTitle": false,
- "columnToPropertyMapping": [
- {
- "from": "Work Status",
- "to": "status"
- }
- ],
- "whitelistedEvents": [
- { "eventName": "Product purchased" },
- { "eventName": "Product added to cart" }
- ]
- },
- "result": false,
- "err": ["groupTitle must be string"]
- },
- {
- "config": {
- "apiToken": "eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
- "boardId": "323826323",
- "groupTitle": "Active deals",
- "columnToPropertyMapping": [
- {
- "from": "Work Status",
- "to": "status"
- }
- ],
- "whitelistedEvents": [
- { "eventName": "Product purchased" },
- { "eventName": "Product added to cart" }
- ]
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/mp_test.json b/src/validations/__tests__/validation_test_data/mp_test.json
deleted file mode 100644
index 033944d7d..000000000
--- a/src/validations/__tests__/validation_test_data/mp_test.json
+++ /dev/null
@@ -1,169 +0,0 @@
-[
- {
- "config": {
- "token": "2de18c6hf6v45201ab43d2344b0c128x",
- "apiSecret": "1c078994c2141897ffaf71c36a75v227",
- "dataResidency": "us",
- "people": false,
- "setAllTraitsByDefault": false,
- "consolidatedPageCalls": true,
- "trackCategorizedPages": false,
- "trackNamedPages": false,
- "sourceName": "AWS",
- "crossSubdomainCookie": true,
- "persistence": "cookie",
- "secureCookie": true,
- "superProperties": [
- {
- "property": "super001"
- }
- ],
- "peopleProperties": [
- {
- "property": "maidenName"
- }
- ],
- "eventIncrements": [
- {
- "property": "triggerName"
- }
- ],
- "propIncrements": [
- {
- "property": "extraProps"
- }
- ],
- "groupKeySettings": [
- {
- "groupKey": "gg101"
- }
- ],
- "useNativeSDK": {
- "android": false
- },
- "blacklistedEvents": [
- {
- "eventName": "black"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": "white"
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "8ac88f162ddfefd91156565c431611fb",
- "dataResidency": "us",
- "groupKeySettings": [
- {
- "groupKey": "admissions"
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'token'"]
- },
- {
- "config": {
- "token": "2de18c6hf6v45201ab43d2344b0c128x",
- "dataResidency": "us",
- "people": false,
- "setAllTraitsByDefault": false,
- "consolidatedPageCalls": true,
- "trackCategorizedPages": false,
- "trackNamedPages": false,
- "crossSubdomainCookie": false,
- "persistence": "localStorage",
- "secureCookie": false,
- "eventFilteringOption": "disable",
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "token": "2de18c6hf6v45201ab43d2344b0c128x",
- "dataResidency": "us",
- "people": true,
- "trackNamedPages": false,
- "crossSubdomainCookie": false,
- "persistence": "localStorage",
- "secureCookie": false,
- "eventFilteringOption": "disable",
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "token": "2de18c6hf6v45201ab43d2344b0c128x",
- "dataResidency": "us",
- "people": false,
- "setAllTraitsByDefault": false,
- "consolidatedPageCalls": false,
- "trackCategorizedPages": false,
- "trackNamedPages": {
- "name": true
- },
- "crossSubdomainCookie": false,
- "persistence": "localStorage",
- "secureCookie": false,
- "eventFilteringOption": "disable",
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["trackNamedPages must be boolean"]
- },
- {
- "config": {
- "token": "2de18c6hf6v45201ab43d2344b0c128x",
- "dataResidency": "us",
- "people": false,
- "setAllTraitsByDefault": false,
- "consolidatedPageCalls": false,
- "trackCategorizedPages": false,
- "trackNamedPages": false,
- "sourceName": "qflkmnzhahdgfhdhfe9he9wfhwe9fhweqdwgygqdwiqflkmnzhahdgfhdhfe9he9wfhwe9fhweqdwgygqdwiqflkmnzhahdgfhdhfe9he9wfhwe9fhweqdwgygqdwi",
- "crossSubdomainCookie": false,
- "persistence": "localStorage",
- "secureCookie": false,
- "eventFilteringOption": "disable",
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["sourceName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/mssql_test.json b/src/validations/__tests__/validation_test_data/mssql_test.json
deleted file mode 100644
index b8849f812..000000000
--- a/src/validations/__tests__/validation_test_data/mssql_test.json
+++ /dev/null
@@ -1,276 +0,0 @@
-[
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test-bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": true,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "sasToken": "test-azure-sas-token",
- "useSASTokens": false,
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test-container",
- "accountName": "test-account-name",
- "useSSL": true
- },
- "result": false,
- "err": [
- " must have required property 'accountKey'",
- " must have required property 'useSASTokens'",
- " must have required property 'sasToken'",
- " must match a schema in anyOf",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "useRudderStorage": false,
- "sslMode": "disable",
- "bucketProvider": "MINIO",
- "syncFrequency": "30",
- "bucketName": "test-bucket",
- "accessKeyID": "test-access-key-id",
- "secretAccessKey": "test-secret-access-key",
- "endPoint": "https:test.com",
- "useSSL": true
- },
- "result": true
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "bucketProvider": "S3",
- "useRudderStorage": false,
- "syncFrequency": "30",
- "bucketName": "ab..ab",
- "accessKeyID": "test-access-key-id",
- "accessKey": "test-access-key"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "GCS",
- "bucketName": "test..bucket",
- "endPoint": "",
- "useSSL": true,
- "credentials": "{}",
- "excludeWindow": {
- "excludeWindowStartTime": "",
- "excludeWindowEndTime": ""
- },
- "syncStartAt": "16:30"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "sslMode": "disable",
- "syncFrequency": "30",
- "useRudderStorage": false,
- "bucketProvider": "AZURE_BLOB",
- "containerName": "test--container",
- "accountName": "test-account-name",
- "accountKey": "test-azure-account-key",
- "useSSL": true
- },
- "result": false,
- "err": [
- "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
- " must match \"then\" schema"
- ]
- },
- {
- "config": {
- "host": "test-host",
- "database": "test-database",
- "user": "test-user",
- "password": "test-password",
- "port": "0000",
- "useRudderStorage": false,
- "sslMode": "disable",
- "bucketProvider": "MINIO",
- "syncFrequency": "30",
- "bucketName": "1.2.3.4",
- "accessKeyID": "test-access-key-id",
- "secretAccessKey": "test-secret-access-key",
- "endPoint": "https:test.com",
- "useSSL": true
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
- " must match \"then\" schema"
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/one_signal_test.json b/src/validations/__tests__/validation_test_data/one_signal_test.json
deleted file mode 100644
index cd013d00a..000000000
--- a/src/validations/__tests__/validation_test_data/one_signal_test.json
+++ /dev/null
@@ -1,36 +0,0 @@
-[
- {
- "config": {
- "appId": "",
- "emailDeviceType": false,
- "smsDeviceType": false,
- "eventAsTags": false,
- "allowedProperties": [{ "propertyName": "" }]
- },
- "result": false,
- "err": [
- "appId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "appId": "7acc2c99-818c-4a28-b98e-6cd8a994da65",
- "emailDeviceType": false,
- "smsDeviceType": false,
- "eventAsTags": false,
- "allowedProperties": [{ "propertyName": "" }]
- },
- "result": true
- },
- {
- "config": {
- "appId": "7acc2c99-818c-4a28-b98e-6cd8a994da65",
- "emailDeviceType": "false",
- "smsDeviceType": false,
- "eventAsTags": false,
- "allowedProperties": [{ "propertyName": "" }]
- },
- "result": false,
- "err": ["emailDeviceType must be boolean"]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/persistIq_test.json b/src/validations/__tests__/validation_test_data/persistIq_test.json
deleted file mode 100644
index 5a82e2c38..000000000
--- a/src/validations/__tests__/validation_test_data/persistIq_test.json
+++ /dev/null
@@ -1,28 +0,0 @@
-[{
- "config": {
- "apiKey":"893yh2ef823yf0",
- "persistIqAttributesMapping": [
- {
- "from": "useroccupation",
- "to": "occupation"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "apiKey":"",
- "persistIqAttributesMapping": [
- {
- "from": "useroccupation",
- "to": "occupation"
- }
- ]
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }]
-
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/pinterest_tag_test.json b/src/validations/__tests__/validation_test_data/pinterest_tag_test.json
deleted file mode 100644
index 2dcd388ec..000000000
--- a/src/validations/__tests__/validation_test_data/pinterest_tag_test.json
+++ /dev/null
@@ -1,142 +0,0 @@
-[
- {
- "config": {
- "tagId": "123456789",
- "advertiserId": "429047995",
- "appId": "429047995",
- "enhancedMatch": true,
- "sendingUnHashedData": true,
- "enableDeduplication": true,
- "deduplicationKey": "messageId",
- "customProperties": [
- {
- "properties": "customProperty.customValue"
- },
- {
- "properties": "randomValue"
- }
- ],
- "eventsMapping": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "tagId": "123456789abc",
- "advertiserId": "429047995",
- "appId": "429047995",
- "sendingUnHashedData": false,
- "enableDeduplication": true,
- "deduplicationKey": "messageId",
- "enhancedMatch": true,
- "customProperties": [
- {
- "properties": "presentclass"
- },
- {
- "properties": "presentgrade"
- }
- ],
- "eventsMapping": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ]
- },
- "result": false,
- "err": [
- "tagId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "tagId": "123456789",
- "advertiserId": "429047995abc",
- "appId": "429047995",
- "sendingUnHashedData": false,
- "enhancedMatch": true,
- "enableDeduplication": false,
- "customProperties": [
- {
- "properties": "presentclass"
- },
- {
- "properties": "presentgrade"
- }
- ],
- "eventsMapping": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ]
- },
- "result": false,
- "err": [
- "advertiserId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "tagId": "123456789",
- "advertiserId": "429047995",
- "appId": "429047995abc",
- "sendingUnHashedData": true,
- "enableDeduplication": false,
- "enhancedMatch": false,
- "customProperties": [
- {
- "properties": "presentclass"
- },
- {
- "properties": "presentgrade"
- }
- ],
- "eventsMapping": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ]
- },
- "result": false,
- "err": [
- "appId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "tagId": "123456789",
- "advertiserId": "429047995",
- "appId": "429047995",
- "sendingUnHashedData": true,
- "enableDeduplication": true,
- "deduplicationKey": "",
- "enhancedMatch": false,
- "customProperties": [
- {
- "properties": "presentclass"
- },
- {
- "properties": "presentgrade"
- }
- ],
- "eventsMapping": [
- {
- "from": "Track Ping",
- "to": "ping"
- }
- ]
- },
- "result": false,
- "err": [
- "deduplicationKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/pipedream_test.json b/src/validations/__tests__/validation_test_data/pipedream_test.json
deleted file mode 100644
index cfa1e3ee2..000000000
--- a/src/validations/__tests__/validation_test_data/pipedream_test.json
+++ /dev/null
@@ -1,90 +0,0 @@
-[
- {
- "config": {
- "pipedreamUrl": "http://sample.com/url",
- "pipedreamMethod": "GET",
- "headers": [
- {
- "from": "a",
- "to": "a"
- },
- {
- "from": "b",
- "to": "b"
- },
- {
- "from": "c",
- "to": "c"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "pipedreamMethod": "POST",
- "headers": [
- {
- "from": "a",
- "to": "a"
- },
- {
- "from": "b",
- "to": "b"
- },
- {
- "from": "c",
- "to": "c"
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'pipedreamUrl'"]
- },
- {
- "config": {
- "pipedreamUrl": "https://pipedream.site/cd6e1235-142d-6355-155e-feee12cb3c49",
- "pipedreamMethod": "POST"
- },
- "result": true
- },
- {
- "config": {
- "pipedreamUrl": "http://sample.com/api/hooks/url",
- "pipedreamMethod": "POST",
- "headers": [
- {
- "from": "Authorization",
- "to": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCINiIsInR5cCI6IkpXVCkYTJkMDA4ZTcwMGNiIsInR5cCI6IkpXVCXIiOiI2MTE1NTJmYWYyNGE2ODAwMTJjYjhiNzQiLCJvcmciOiI2MGRjN2M2MWU5ZDliM2MzOTVjZWI5ZGIiLCJvcmdOYW1lIjoibmVpZ2hib3IiLCJ1c2VyVHlwZSI6Im1hY2hpbmUiLCJwb2QiOiJwcm9kMSIsInJvbGVzIjpbIm9yZy5hZG1pbiIsIm9yZy5ob29rcyIsIm9yZy5wZXJtaXNzaW9uIiwib3JnLnVzZXIiXSwiYXVkIjoidXJuOmNvbnN1bWVyIiwiaXNzIjoidXJuOmFwaSIsInN1YiI6IjYxMTU1MmZhZjI0YTY4MDAxMmNiOGI3NCJ9.CwzS9X8bQqC3lNt5WlxbHosJZ8sL-ogUTNh_ORBNIIw"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "pipedreamUrl": "ftp://bridgettl.com/wbh",
- "pipedreamMethod": "GET",
- "headers": [
- {
- "from": "isSecure",
- "to": "secure010qpo12"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "pipedreamUrl": "http://test.ec-example.example.com",
- "pipedreamMethod": "POST",
- "headers": [
- {
- "from": "isSecure",
- "to": "101"
- }
- ]
- },
- "result": true
- }
- ]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/podsights_test.json b/src/validations/__tests__/validation_test_data/podsights_test.json
deleted file mode 100644
index 3587d37c8..000000000
--- a/src/validations/__tests__/validation_test_data/podsights_test.json
+++ /dev/null
@@ -1,68 +0,0 @@
-[
- {
- "config": {
- "pixelId": "",
- "eventsToQPEvents": [
- {
- "from": "Order Completed",
- "to": "Purchase"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }]
- },
- "result": false,
- "err": [
- "pixelId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "eventsToQPEvents": [
- {
- "from": "Order Completed",
- "to": "Purchase"
- }
- ],
- "enableAliasCall": false,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }]
- },
- "result": false,
- "err": [" must have required property 'pixelId'"]
- },
- {
- "config": {
- "pixelId": 1234,
- "eventsToQPEvents": [
- {
- "from": "Order Completed",
- "to": "Purchase"
- }
- ],
- "enableAliasCall": true,
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }]
- },
- "result": false,
- "err": ["pixelId must be string"]
- },
- {
- "config": {
- "pixelId": "qwerty1234qwerty",
- "eventsToQPEvents": [
- {
- "from": "Order Completed",
- "to": "Purchase"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }]
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/refiner_test.json b/src/validations/__tests__/validation_test_data/refiner_test.json
deleted file mode 100644
index a26a20685..000000000
--- a/src/validations/__tests__/validation_test_data/refiner_test.json
+++ /dev/null
@@ -1,98 +0,0 @@
-[
- {
- "config": {
- "apiKey": "d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v",
- "webClientApiKey": "d2bnp1ubi9x6zq1p845487293848yx2hf5q1k3v",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "webClientApiKey": "d2bnp1ubi9x6zq1p845487293848yx2hf5q1k3v",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "config": {
- "apiKey": "",
- "webClientApiKey": "d2bnp1ubi9x6zq1p845487293848yx2hf5q1k3v",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v",
- "webClientApiKey": "",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [
- "webClientApiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [" must have required property 'webClientApiKey'"]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/revenue_cat_test.json b/src/validations/__tests__/validation_test_data/revenue_cat_test.json
deleted file mode 100644
index b2a7b4936..000000000
--- a/src/validations/__tests__/validation_test_data/revenue_cat_test.json
+++ /dev/null
@@ -1,19 +0,0 @@
-[
- {
- "config": {
- "apiKey": "",
- "xPlatform": "stripe"
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "apiKey": "str_1435jbakh012",
- "xPlatform": "amazon"
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/rockerbox_test.json b/src/validations/__tests__/validation_test_data/rockerbox_test.json
deleted file mode 100644
index f607850bc..000000000
--- a/src/validations/__tests__/validation_test_data/rockerbox_test.json
+++ /dev/null
@@ -1,139 +0,0 @@
-[
- {
- "config": {
- "advertiserId": "test id",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "eventsMap": [
- {
- "from": "Product Added",
- "to": "conv.add_to_cart"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "useNativeSDKToSend": {
- "web": true
- },
- "clientAuthId": {
- "web": "test-client-auth-id"
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing Sample"
- }
- ]
- },
- "customDomain": {
- "web": ""
- },
- "enableCookieSync": {
- "web": false
- }
- },
- "result": true
- },
- {
- "config": {
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "eventsMap": [
- {
- "from": "Product Added",
- "to": "conv.add_to_cart"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "useNativeSDKToSend": {
- "web": true
- },
- "clientAuthId": {
- "web": "test-client-auth-id"
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing Sample"
- }
- ]
- },
- "customDomain": {
- "web": ""
- },
- "enableCookieSync": {
- "web": false
- }
- },
- "result": false,
- "err": [
- " must have required property 'advertiserId'"
- ]
- },
- {
- "config": {
- "advertiserId": "test id",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "eventsMap": [
- {
- "from": "Product Added",
- "to": "conv.add_to_cart"
- }
- ],
- "useNativeSDK": {
- "web": true
- },
- "useNativeSDKToSend": {
- "web": true
- },
- "clientAuthId": {
- "web": "test-client-auth-id"
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Marketing Sample"
- }
- ]
- },
- "customDomain": {
- "web": "https://cookiedomain.com"
- },
- "enableCookieSync": {
- "web": true
- }
- },
- "result": true
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/s3_datalake_test.json b/src/validations/__tests__/validation_test_data/s3_datalake_test.json
deleted file mode 100644
index 9e75ddba9..000000000
--- a/src/validations/__tests__/validation_test_data/s3_datalake_test.json
+++ /dev/null
@@ -1,108 +0,0 @@
-[
- {
- "config": {
- "bucketName": "test-bucket",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
- ]
- },
- {
- "config": {
- "bucketName": "test.bucket",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "testBucket",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
- ]
- },
- {
- "config": {
- "bucketName": "ab",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
- ]
- },
- {
- "config": {
- "bucketName": "ab..ab",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
- ]
- },
- {
- "config": {
- "bucketName": "xn--abc",
- "useGlue": true,
- "prefix": "xyzxx",
- "namespace": "eu_new3",
- "accessKeyID": "",
- "accessKey": "",
- "syncFrequency": "30",
- "region": "us-east-1"
- },
- "result": false,
- "err": [
- "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/s3_test.json b/src/validations/__tests__/validation_test_data/s3_test.json
deleted file mode 100644
index f958e5329..000000000
--- a/src/validations/__tests__/validation_test_data/s3_test.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
- {
- "config": {
- "bucketName": "traveltesting",
- "prefix": "load-GA",
- "accessKeyID": "AKIAJOJJ2DSTMP1SB2IL",
- "accessKey": "qsmYPTbeifaSdOD+Qqq2s+fsSmDQxF1ylqCfV0xa",
- "enableSSE": false
- },
- "result": true
- },
- {
- "config": {
- "prefix": "rudder",
- "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
- "accessKey": "VZElJiPgn/vBwKWEQk6RpbdOxZIQn1iS5CjE5vD8",
- "enableSSE": true,
- "testConnection": false,
- "testConnectionTS": 1627655059687
- },
- "result": false,
- "err": [" must have required property 'bucketName'"]
- },
- {
- "config": {
- "bucketName": "iqw.btex.deltalake.production",
- "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
- "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3",
- "enableSSE": true
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "iqw.btex.deltalake.production",
- "prefix": "tashforcenonsse/app_events/",
- "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
- "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3"
- },
- "result": true
- },
- {
- "config": {
- "bucketName": "iqw.btex.deltalake.production",
- "prefix": [
- "p1",
- "p2"
- ],
- "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
- "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3",
- "enableSSE": false
- },
- "result": false,
- "err": ["prefix must be string"]
- },
- {
- "config": {
- "bucketName": "iqw.btex.deltalake.production",
- "prefix": [
- "p1qpqowoeujdjhfsjcbcnfhhruthgdhdhffpoahwbseytxyideodjfwoefhdwofwbqbckjqowjhdbsjhdhdbfdefbvbswdbswvdwvuqvqooiwqdwcwewef",
- "p2"
- ],
- "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
- "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3",
- "enableSSE": false
- },
- "result": false,
- "err": ["prefix must be string"]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/satismeter_test.json b/src/validations/__tests__/validation_test_data/satismeter_test.json
deleted file mode 100644
index 442457247..000000000
--- a/src/validations/__tests__/validation_test_data/satismeter_test.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
- {
- "config": {
- "writeKey": "dh9823rg2fy923f09",
- "recordSatismeterEvents": true,
- "identifyAnonymousUsers": true,
- "updateEventNames": true,
- "eventsToStandard": [
- {
- "from": "abc",
- "to": "display"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "writeKey": "",
- "recordSatismeterEvents": true,
- "identifyAnonymousUsers": false,
- "updateEventNames": true,
- "eventsToStandard": [
- {
- "from": "abc",
- "to": "dismiss"
- },
- {
- "from": "abc",
- "to": "complete"
- },
- {
- "from": "def",
- "to": "progress"
- }
- ],
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ]
- },
- "result": false,
- "err": [
- "writeKey must match pattern \"^(([a-z0-9]+[.])+[a-z]{1,})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/sendinblue_test.json b/src/validations/__tests__/validation_test_data/sendinblue_test.json
deleted file mode 100644
index f12fe6848..000000000
--- a/src/validations/__tests__/validation_test_data/sendinblue_test.json
+++ /dev/null
@@ -1,113 +0,0 @@
-[
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": "1vd0i6w1al7q38ap5kucurfy",
- "doi": true,
- "templateId": "2",
- "redirectionUrl": "https://my.sendinblue.com/",
- "sendTraitsInTrack": false,
- "contactAttributeMapping": [
- {
- "from": "area_code",
- "to": "AREA"
- },
- {
- "from": "location",
- "to": "LOCATION"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": "1vd0i6w1al7q38ap5kucurfy"
- },
- "result": true
- },
- {
- "config": {
- "clientKey": "1vd0i6w1al7q38ap5kucurfy",
- "doi": true,
- "templateId": "2",
- "redirectionUrl": "https://my.sendinblue.com/"
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "doi": true,
- "templateId": "2",
- "redirectionUrl": "https://my.sendinblue.com/"
- },
- "result": false,
- "err": [" must have required property 'clientKey'"]
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": "1vd0i6w1al7q38ap5kucurfy",
- "doi": true,
- "templateId": "2"
- },
- "result": false,
- "err": [" must have required property 'redirectionUrl'"]
- },
- {
- "config": {
- "apiKey": 1234,
- "clientKey": "1vd0i6w1al7q38ap5kucurfy"
- },
- "result": false,
- "err": ["apiKey must be string"]
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": 1234
- },
- "result": false,
- "err": ["clientKey must be string"]
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": "1vd0i6w1al7q38ap5kucurfy",
- "doi": true,
- "templateId": "abc123",
- "redirectionUrl": "https://my.sendinblue.com/"
- },
- "result": false,
- "err": [
- "templateId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": "1vd0i6w1al7q38ap5kucurfy",
- "doi": true,
- "templateId": 2,
- "redirectionUrl": "https://my.sendinblue.com/"
- },
- "result": false,
- "err": ["templateId must be string"]
- },
- {
- "config": {
- "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
- "clientKey": "1vd0i6w1al7q38ap5kucurfy",
- "doi": true,
- "templateId": "2",
- "redirectionUrl": "xyz"
- },
- "result": false,
- "err": [
- "redirectionUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/sentry_test.json b/src/validations/__tests__/validation_test_data/sentry_test.json
deleted file mode 100644
index b06dcdcb0..000000000
--- a/src/validations/__tests__/validation_test_data/sentry_test.json
+++ /dev/null
@@ -1,73 +0,0 @@
-[
- {
- "config": {
- "dsn": "https://42152b1ac22647378fd808fbdb442798@o1142740.ingest.sentry.io/6201791",
- "environment": "production",
- "customVersionProperty": "window.kaholo.version",
- "release": "window.kaholo.version",
- "serverName": "server",
- "logger": "sentry",
- "debugMode": false,
- "eventFilteringOption": "disable",
- "ignoreErrors": [{ "ignoreErrors": "" }],
- "includePaths": [{ "includePaths": "" }],
- "allowUrls": [{ "allowUrls": "" }],
- "denyUrls": [{ "denyUrls": "" }],
- "whitelistedEvents": [{ "eventName": "" }],
- "blacklistedEvents": [{ "eventName": "" }],
- "useNativeSDK": { "web": true },
- "oneTrustCookieCategories": {
- "web": [{ "oneTrustCookieCategory": "Debugging" }]
- }
- },
- "result": true
- },
- {
- "config": {
- "dsn": "https://eed83226fcb849babf7982f074cf86f0@o1069456.ingest.sentry.io/6064106",
- "environment": "production",
- "customVersionProperty": "",
- "release": "",
- "serverName": "",
- "logger": "",
- "debugMode": false,
- "ignoreErrors": [{ "ignoreErrors": "" }],
- "includePaths": [{ "includePaths": "" }],
- "allowUrls": [{ "allowUrls": "" }],
- "denyUrls": [{ "denyUrls": "" }],
- "useNativeSDK": { "web": true },
- "blacklistedEvents": {},
- "whitelistedEvents": {},
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] }
- },
- "result": false,
- "err": [
- "whitelistedEvents must be array",
- "blacklistedEvents must be array"
- ]
- },
- {
- "config": {
- "dsn": "https://eed83226fcb849babf7982f074cf86f0@o1069456.ingest.sentry.io/6064106",
- "environment": "development",
- "customVersionProperty": "",
- "release": "",
- "serverName": "",
- "logger": "",
- "debugMode": false,
- "ignoreErrors": [{ "ignoreErrors": "" }],
- "includePaths": [{ "includePaths": "" }],
- "allowUrls": [{ "allowUrls": "" }],
- "denyUrls": [{ "denyUrls": "" }],
- "useNativeSDK": { "web": true },
- "blackListedEvents": {},
- "whiteListedEvents": {},
- "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] }
- },
- "result": false,
- "err": [
- " must NOT have additional properties",
- " must NOT have additional properties"
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/shynet_test.json b/src/validations/__tests__/validation_test_data/shynet_test.json
deleted file mode 100644
index 02c50615c..000000000
--- a/src/validations/__tests__/validation_test_data/shynet_test.json
+++ /dev/null
@@ -1,35 +0,0 @@
-[
- {
- "config": {
- "heartBeatFrequencyInMs": "11234",
- "shynetServiceUrl": "https://localhost:5555/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js"
- },
- "result": true
- },
- {
- "config": {
- "heartBeatFrequencyInMs": "",
- "shynetServiceUrl": "http://localhost:5555/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js"
- },
- "result": true
- },
- {
- "config": {
- "heartBeatFrequencyInMs": "5000000000000000000000000000000000000",
- "shynetServiceUrl": "https://wwww.mysite.com/ingress/5b3470a9-be69-4298-9ec1-354354354wefdv/script.js"
- },
- "result": false,
- "err": [
- "heartBeatFrequencyInMs must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,10})$\""
- ]
- },
- {
- "config": {
- "heartBeatFrequencyInMs": "2000",
- "shynetServiceUrl": ""
- },
- "err": [
- "shynetServiceUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/singular_test.json b/src/validations/__tests__/validation_test_data/singular_test.json
deleted file mode 100644
index 0aafd8cfd..000000000
--- a/src/validations/__tests__/validation_test_data/singular_test.json
+++ /dev/null
@@ -1,85 +0,0 @@
-[
- {
- "config": {
- "apiKey": "nowstack_3a8df6629b0be0cf6xxa22fb2220e929_811168a9",
- "apiSecret": "",
- "eventFilteringOption": "disable",
- "sessionEventList": [
- {
- "sessionEventName": "App Session New"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "android": true
- }
- },
- "result": true
- },
- {
- "config": {
- "apiSecret": "h2rh3g23hr92rh9hfew",
- "eventFilteringOption": "disable",
- "sessionEventList": [
- {
- "sessionEventName": "App Session New"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "android": true
- }
- },
- "result": false,
- "err": [
- " must have required property 'apiKey'"
- ]
- },
- {
- "config": {
- "apiKey": "nowstack_3a8df6629b0be0cf6xxa22fb2220e929_811168a9",
- "apiSecret": "gidawgaigfa",
- "eventFilteringOption": "disable",
- "sessionEventList": [
- {
- "sessionEventName": "Application Session"
- },
- {
- "sessionEventName": "New Campaign Session"
- }
- ],
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "useNativeSDK": {
- "android": true
- }
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/slack_test.json b/src/validations/__tests__/validation_test_data/slack_test.json
deleted file mode 100644
index 6459442bf..000000000
--- a/src/validations/__tests__/validation_test_data/slack_test.json
+++ /dev/null
@@ -1,57 +0,0 @@
-[
- {
- "config": {
- "identifyTemplate": "",
- "webhookUrl": "",
- "eventChannelSettings": [
- { "eventName": "", "eventChannel": "", "eventRegex": false }
- ],
- "eventTemplateSettings": [
- { "eventName": "", "eventTemplate": "", "eventRegex": false }
- ],
- "whitelistedTraitsSettings": [{ "trait": "" }]
- },
- "result": true
- },
- {
- "config": {
- "identifyTemplate": "",
- "webhookUrl": "https://hooks.slack.com/services/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",
- "eventChannelSettings": [
- { "eventName": "XYZ", "eventChannel": "@srikanth", "eventRegex": false }
- ],
- "eventTemplateSettings": [
- {
- "eventName": "abc",
- "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
- "eventRegex": false
- }
- ],
- "whitelistedTraitsSettings": [{ "trait": "" }]
- },
- "result": true
- },
- { "config": { "identifyTemplate": "", "webhookUrl": "" }, "result": true },
- {
- "config": {
- "identifyTemplate": "",
- "webhookUrl": "https://hooks.slack.com/services/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",
- "eventChannelSettings": [
- { "eventName": "XYZ", "eventChannel": "@srikanth", "eventRegex": false }
- ],
- "eventTemplateSettings": [
- {
- "eventName": 1234,
- "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
- "eventRegex": "false"
- }
- ],
- "whitelistedTraitsSettings": [{ "trait": "" }]
- },
- "result": false,
- "err": [
- "eventTemplateSettings.0.eventName must be string",
- "eventTemplateSettings.0.eventRegex must be boolean"
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/snapchat_conversion_test.json b/src/validations/__tests__/validation_test_data/snapchat_conversion_test.json
deleted file mode 100644
index 01dca838c..000000000
--- a/src/validations/__tests__/validation_test_data/snapchat_conversion_test.json
+++ /dev/null
@@ -1,35 +0,0 @@
-[
- {
- "config": {
- "apiKey": "MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
- "pixelId": "836d6231-aad6-4e41-9cbb-5854565cad8e",
- "enableDeduplication": false
- },
- "result": true
- },
- {
- "config": {
- "pixelId": "836d6231-aad6-4e41-9cbb-5854565cad8e",
- "enableDeduplication": true,
- "deduplicationKey": "messageId"
- },
- "result": false,
- "err": [" must have required property 'apiKey'"]
- },
- {
- "config": {
- "apiKey": "MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
- "pixelId": "836d6231-aad6-4e41-9cbb-5854565cad8e",
- "enableDeduplication": true,
- "deduplicationKey": "messageId",
- "rudderEventsToSnapEvents": [
- {
- "from": "prodSearch",
- "to": "products_searched"
- }
- ]
-
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/snapengage_test.json b/src/validations/__tests__/validation_test_data/snapengage_test.json
deleted file mode 100644
index e1959ed23..000000000
--- a/src/validations/__tests__/validation_test_data/snapengage_test.json
+++ /dev/null
@@ -1,63 +0,0 @@
-[
- {
- "config": {
- "widgetId": "11234",
- "recordLiveChatEvents": true,
- "updateEventNames": true,
- "eventsToStandard": [
- {
- "from": "abc",
- "to": "startChat"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "widgetId": "11234",
- "recordLiveChatEvents": true,
- "updateEventNames": true,
- "eventsToStandard": [
- {
- "from": "abc",
- "to": "startChat"
- },
- {
- "from": "abc",
- "to": "chatMessageSent"
- },
- {
- "from": "def",
- "to": "chatMessageReceived"
- }
- ]
- },
- "result": true
- },
- {
- "config": {
- "widgetId": "11234",
- "recordLiveChatEvents": true,
- "updateEventNames": false
- },
- "result": true
- },
- {
- "config": {
- "widgetId": "",
- "recordLiveChatEvents": true,
- "updateEventNames": true,
- "eventsToStandard": [
- {
- "from": "abc",
- "to": "startChat"
- }
- ]
- },
- "result": false,
- "err": [
- "widgetId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/vero_test.json b/src/validations/__tests__/validation_test_data/vero_test.json
deleted file mode 100644
index c24169c6c..000000000
--- a/src/validations/__tests__/validation_test_data/vero_test.json
+++ /dev/null
@@ -1,103 +0,0 @@
-[
- {
- "config": {
- "authToken": "MOx2ZmMwLNE2A2IdNKL0N2VhN2I3ZGY1MTVmMzA1ODk0YmIkNDZhNTojMTk3YTBlMTg1YmU1NWM0MDA2ZDVmZjY0ZGFiOTVkNDMyYTcwOWFk",
- "apiKey": {
- "web": "755fc11162r14c41ar7e7df232f305984bb021a1"
- },
- "useNativeSDK": {
- "web": false
- },
- "blacklistedEvents": {
- "web": [
- {
- "eventName": "Pin Generated"
- },
- {
- "eventName": "Pin Expired"
- }
- ]
- },
- "whitelistedEvents": {
- "web": [
- {
- "eventName": ""
- }
- ]
- },
- "eventFilteringOption": {
- "web": "blacklistedEvents"
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": "Sales"
- },
- {
- "oneTrustCookieCategory": "Marketing"
- }
- ]
- }
- },
- "result": false,
- "err": ["whitelistedEvents must be array","blacklistedEvents must be array"]
- },
- {
- "config": {
- "authToken": "wbiwefbwiefbfkbfwekj",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "apiKey": {
- "web": "bkajbdskasbdkbadasdsa"
- },
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": true
- },
- {
- "config": {
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "apiKey": "djykdftkuf",
- "useNativeSDK": {
- "web": false
- },
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- }
- },
- "result": false,
- "err": ["apiKey must be object"]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/vwo_test.json b/src/validations/__tests__/validation_test_data/vwo_test.json
deleted file mode 100644
index 9bad2083f..000000000
--- a/src/validations/__tests__/validation_test_data/vwo_test.json
+++ /dev/null
@@ -1,109 +0,0 @@
-[
- {
- "config": {
- "accountId": "68869",
- "isSPA": true,
- "sendExperimentTrack": false,
- "sendExperimentIdentify": true,
- "eventFilteringOption": "blacklistedEvents",
- "libraryTolerance": "2500",
- "settingsTolerance": "2000",
- "useExistingJquery": true,
- "whitelistedEvents": [],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- },
- {
- "eventName": "b2"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": true
- },
- {
- "config": {
- "accountId": "68869",
- "isSPA": true,
- "sendExperimentTrack": false,
- "sendExperimentIdentify": true,
- "eventFilteringOption": "whitelistedEvents",
- "libraryTolerance": "2500",
- "settingsTolerance": "2000",
- "useExistingJquery": true,
- "whitelistedEvents": [
- {
- "eventName": "w1 allowed"
- },
- {
- "eventName": "w2 allowed"
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- },
- {
- "eventName": "b2"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": true
- },
- {
- "config": {
- "isSPA": true,
- "sendExperimentTrack": false,
- "sendExperimentIdentify": true,
- "eventFilteringOption": "blacklistedEvents",
- "libraryTolerance": "2500",
- "settingsTolerance": "2000",
- "useExistingJquery": true,
- "whitelistedEvents": [],
- "blacklistedEvents": [
- {
- "eventName": "b1"
- },
- {
- "eventName": "b2"
- }
- ],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": false,
- "err": [" must have required property 'accountId'"]
- },
- {
- "config": {
- "accountId": "68869",
- "isSPA": true,
- "sendExperimentTrack": true,
- "sendExperimentIdentify": false,
- "eventFilteringOption": "whitelistedEvents",
- "libraryTolerance": "1500",
- "settingsTolerance": "2300",
- "useExistingJquery": true,
- "whitelistedEvents": [
- {
- "eventName": {
- "name": "whitelistedEventObject1"
- }
- }
- ],
- "blacklistedEvents": [],
- "useNativeSDK": {
- "web": true
- }
- },
- "result": false,
- "err": ["whitelistedEvents.0.eventName must be string"]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/webengage_test.json b/src/validations/__tests__/validation_test_data/webengage_test.json
deleted file mode 100644
index 8d4d558a9..000000000
--- a/src/validations/__tests__/validation_test_data/webengage_test.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
- "config": {
- "licenseCode": "",
- "apiKey": "asdf123sad",
- "dataCenter": "standard"
- },
- "result": false,
- "err": [
- "licenseCode must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "licenseCode": "adhs123",
- "apiKey": "",
- "dataCenter": "ind"
- },
- "result": false,
- "err": [
- "apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "licenseCode": "adhs123",
- "apiKey": "ajsdgkh21",
- "dataCenter": "standard"
- },
- "result": true
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/woopra_test.json b/src/validations/__tests__/validation_test_data/woopra_test.json
deleted file mode 100644
index 6f834539a..000000000
--- a/src/validations/__tests__/validation_test_data/woopra_test.json
+++ /dev/null
@@ -1,37 +0,0 @@
-[
- {
- "config": {
- "projectName": "abcwork.com",
- "cookieName": "iugefiu23",
- "cookiePath": "folder/tmp",
- "cookieDomain": "testing.com",
- "clickTracking": false,
- "downloadTracking": true,
- "hideCampaign": true,
- "idleTimeout": "30000",
- "ignoreQueryUrl": false,
- "outgoingIgnoreSubdomain": true,
- "outgoingTracking": true
- },
- "result": true
- },
- {
- "config": {
- "projectName": "abc1",
- "cookieName": "iugefiu23",
- "cookiePath": "folder/tmp",
- "cookieDomain": "testing.com",
- "clickTracking": false,
- "downloadTracking": true,
- "hideCampaign": true,
- "idleTimeout": "20000",
- "ignoreQueryUrl": false,
- "outgoingIgnoreSubdomain": true,
- "outgoingTracking": true
- },
- "result": false,
- "err": [
- "projectName must match pattern \"^(([a-z0-9]+[.])+[a-z]{1,})$\""
- ]
- }
-]
\ No newline at end of file
diff --git a/src/validations/__tests__/validation_test_data/wootric_test.json b/src/validations/__tests__/validation_test_data/wootric_test.json
deleted file mode 100644
index 42df6c24f..000000000
--- a/src/validations/__tests__/validation_test_data/wootric_test.json
+++ /dev/null
@@ -1,43 +0,0 @@
-[
- {
- "config": {
- "username": "testUser@example.com",
- "password": "Hn7zefEy9FNYz$!J",
- "accountToken": "NPS-8f872341"
- },
- "result": true
- },
- {
- "config": {
- "username": "",
- "password": "Hn7zefEy9FNYz$!J",
- "accountToken": "NPS-8f872341"
- },
- "result": false,
- "err": [
- "username must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "username": "username123",
- "password": "Hn7zefEy9FNYz$!J",
- "accountToken": "NPS-8f872341"
- },
- "result": false,
- "err": [
- "username must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "username": "testUser@example.com",
- "password": "Hn7zefEy9FNYz",
- "accountToken": 8872341
- },
- "result": false,
- "err": [
- "accountToken must be string"
- ]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/yahoo_dsp_test.json b/src/validations/__tests__/validation_test_data/yahoo_dsp_test.json
deleted file mode 100644
index 7ba513d41..000000000
--- a/src/validations/__tests__/validation_test_data/yahoo_dsp_test.json
+++ /dev/null
@@ -1,107 +0,0 @@
-[
- {
- "config": {
- "clientId": "",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "138383",
- "accountId": "42423",
- "audienceType": "EMAIL",
- "hashRequired": false
- },
- "result": false,
- "err": [
- "clientId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "",
- "audienceId": "138383",
- "accountId": "42423",
- "audienceType": "EMAIL",
- "hashRequired": false
- },
- "result": false,
- "err": [
- "clientSecret must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "138383",
- "accountId": "42423",
- "audienceType": "DEVICE_ID",
- "seedListType": "GPADVID",
- "hashRequired": false
- },
- "result": true
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "",
- "accountId": "42423",
- "audienceType": "EMAIL",
- "hashRequired": false
- },
- "result": false,
- "err": [
- "audienceId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "138383",
- "accountId": "",
- "audienceType": "EMAIL",
- "hashRequired": false
- },
- "result": false,
- "err": [
- "accountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "138383",
- "accountId": "53421",
- "audienceType": "",
- "hashRequired": false
- },
- "result": false,
- "err": ["audienceType must match pattern \"^(EMAIL|DEVICE_ID|IP_ADDRESS)$\""]
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "138383",
- "accountId": "53421",
- "audienceType": "DEVICE_ID",
- "seedListType": "",
- "hashRequired": false
- },
- "result": false,
- "err": ["seedListType must match pattern \"^(GPADVID|IDFA)$\""]
- },
- {
- "config": {
- "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
- "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
- "audienceId": "138383",
- "accountId": "53421",
- "audienceType": "DEVICE_ID",
- "hashRequired": ""
- },
- "result": false,
- "err": ["hashRequired must be boolean"]
- }
-]
diff --git a/src/validations/__tests__/validation_test_data/yandex_metrica_test.json b/src/validations/__tests__/validation_test_data/yandex_metrica_test.json
deleted file mode 100644
index 811b14673..000000000
--- a/src/validations/__tests__/validation_test_data/yandex_metrica_test.json
+++ /dev/null
@@ -1,381 +0,0 @@
-[
- {
- "config": {
- "tagId": "",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "add"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": [
- "tagId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
- ]
- },
- {
- "config": {
- "tagId": "34324223",
- "clickMap": "false",
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "add"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["clickMap must be boolean"]
- },
- {
- "config": {
- "tagId": "34324223",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "",
- "eventNameToYandexEvent": [
- {
- "from": true,
- "to": "add"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["eventNameToYandexEvent.0.from must be string"]
- },
- {
- "config": {
- "tagId": "34324223",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": false,
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "add"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["containerName must be string"]
- },
- {
- "config": {
- "tagId": "34324223",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "add"
- }
- ],
- "goalId": "43dfd443",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": [
- "goalId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
- ]
- },
- {
- "config": {
- "tagId": "43849343",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "purchase"
- },
- {
- "from": "Viewing Product",
- "to": "detail"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": "false"
- }
- },
- "result": false,
- "err": ["useNativeSDK.web must be boolean"]
- },
- {
- "config": {
- "tagId": "43849343",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "purchase"
- },
- {
- "from": "Viewing Product",
- "to": "detail"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": 123
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["whitelistedEvents.0.eventName must be string"]
- },
- {
- "config": {
- "tagId": "43849343",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "purchase"
- },
- {
- "from": "Viewing Product",
- "to": "detail"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": true,
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": false,
- "err": ["eventFilteringOption must be string"]
- },
- {
- "config": {
- "tagId": "43849343",
- "clickMap": false,
- "trackLinks": false,
- "trackBounce": false,
- "webvisor": false,
- "containerName": "dataLayer",
- "eventNameToYandexEvent": [
- {
- "from": "Order Done",
- "to": "purchase"
- },
- {
- "from": "Viewing Product",
- "to": "detail"
- }
- ],
- "goalId": "4342432",
- "eventFilteringOption": "disable",
- "whitelistedEvents": [
- {
- "eventName": ""
- }
- ],
- "blacklistedEvents": [
- {
- "eventName": ""
- }
- ],
- "oneTrustCookieCategories": {
- "web": [
- {
- "oneTrustCookieCategory": ""
- }
- ]
- },
- "useNativeSDK": {
- "web": false
- }
- },
- "result": true
- }
-]
diff --git a/src/validations/validator.ts b/src/validations/validator.ts
deleted file mode 100644
index 079c81a34..000000000
--- a/src/validations/validator.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import fs from 'fs';
-import path from 'path';
-import glob from 'glob';
-import { promisify } from 'util';
-import Ajv, { ValidateFunction } from 'ajv';
-
-const globPromisified = promisify(glob);
-const readFile = promisify(fs.readFile);
-
-const ajv = new Ajv({
- allErrors: true,
- useDefaults: true,
- strict: false,
- strictSchema: false,
- strictRequired: false,
- strictNumbers: true,
- strictTypes: true,
- strictTuples: true,
-});
-
-let validators: Record = {};
-
-async function importJsonFromFile(file: string) {
- const content = await readFile(file, { encoding: 'utf-8' });
- return JSON.parse(content);
-}
-
-async function initAjvValidators() {
- const files = await globPromisified(path.join(process.cwd(),'data','destinations/*/schema.json'));
- const filePromises = files.map(importJsonFromFile);
- const contents = await Promise.all(filePromises);
-
- files.forEach((file, i) => {
- const filename = path.basename(path.dirname(file));
- validators[filename] = ajv.compile(contents[i]["configSchema"] || {});
- });
-}
-
-export function validateConfig(definitionName: string, config: any,
- throwErrorOnMissingValidations: boolean = false) {
- if (!definitionName) {
- throw new Error('Missing definitionName');
- }
-
- const validationMethod = validators[definitionName];
- if (!validationMethod && throwErrorOnMissingValidations) {
- throw new Error(`No validation method found for definition ${definitionName}`);
- }
-
- // console.log(definitionName, validationMethod, !validationMethod(config), " -- ", (validationMethod && !validationMethod(config)));
-
- if (validationMethod && !validationMethod(config)) {
- let errorMessages: string[] = [];
- if (validationMethod.errors?.length) {
- errorMessages = validationMethod.errors.map(((e) => {
- const propertyName = e.instancePath.slice(1).replace(/\//g, '.');
- return `${propertyName} ${e.message}`;
- }));
- }
-
- throw new Error(errorMessages.length ? JSON.stringify(errorMessages) : 'Validation failed');
- }
-}
-
-export default function init() {
- validators = {};
- initAjvValidators();
-}
diff --git a/src/validator/index.ts b/src/validator/index.ts
new file mode 100644
index 000000000..1c615132c
--- /dev/null
+++ b/src/validator/index.ts
@@ -0,0 +1,72 @@
+import fs from 'fs';
+import path from 'path';
+import glob from 'glob';
+import { promisify } from 'util';
+import Ajv, { ValidateFunction } from 'ajv';
+
+const globPromisified = promisify(glob);
+const readFile = promisify(fs.readFile);
+
+const ajv = new Ajv({
+ allErrors: true,
+ useDefaults: true,
+ strict: false,
+ strictSchema: false,
+ strictRequired: false,
+ strictNumbers: true,
+ strictTypes: true,
+ strictTuples: true,
+});
+
+let validators: Record = {};
+
+async function importJsonFromFile(file: string) {
+ const content = await readFile(file, { encoding: 'utf-8' });
+ return JSON.parse(content);
+}
+
+async function initAjvValidators() {
+ const files = await globPromisified(path.join(__dirname, '../configurations/**/schema.json'));
+ const filePromises = files.map(importJsonFromFile);
+ const contents = await Promise.all(filePromises);
+
+ files.forEach((file, i) => {
+ const intgDir = path.dirname(file);
+ const intgName = path.basename(intgDir);
+ const intgType = path.basename(path.dirname(intgDir));
+ validators[`${intgType}___${intgName}`] = ajv.compile(contents[i]?.configSchema || {});
+ });
+}
+
+export function validateConfig(
+ definitionName: string,
+ config: Record,
+ intgType: string,
+ throwErrorOnMissingValidations = false,
+) {
+ if (!definitionName) {
+ throw new Error('Missing definitionName');
+ }
+
+ const validationMethod = validators[`${intgType}___${definitionName}`];
+ if (!validationMethod && throwErrorOnMissingValidations) {
+ throw new Error(`No validation method found for definition ${definitionName}`);
+ }
+
+ if (validationMethod && !validationMethod(config)) {
+ let errorMessages: string[] = [];
+ if (validationMethod.errors?.length) {
+ errorMessages = validationMethod.errors.map((e) => {
+ const propertyName = e.instancePath.slice(1).replace(/\//g, '.');
+ return `${propertyName} ${e.message}`;
+ });
+ }
+
+ throw new Error(JSON.stringify(errorMessages));
+ }
+}
+
+export async function init() {
+ validators = {};
+ await initAjvValidators();
+}
diff --git a/src/validations/__tests__/validation_test_data/active_campaign_test.json b/test/data/validation/destinations/active_campaign.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/active_campaign_test.json
rename to test/data/validation/destinations/active_campaign.json
diff --git a/test/data/validation/destinations/adobe_analytics.json b/test/data/validation/destinations/adobe_analytics.json
new file mode 100644
index 000000000..d4424731d
--- /dev/null
+++ b/test/data/validation/destinations/adobe_analytics.json
@@ -0,0 +1,408 @@
+[
+ {
+ "config": {
+ "trackingServerUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics",
+ "trackingServerSecureUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics/",
+ "reportSuiteIds": "id001, id002",
+ "sslHeartbeat": true,
+ "heartbeatTrackingServerUrl": "https://heartbeat.com",
+ "useUtf8Charset": true,
+ "useSecureServerSide": true,
+ "proxyNormalUrl": "",
+ "proxyHeartbeatUrl": "",
+ "marketingCloudOrgId": "org10121",
+ "dropVisitorId": true,
+ "timestampOption": "enabled",
+ "timestampOptionalReporting": true,
+ "noFallbackVisitorId": false,
+ "preferVisitorId": true,
+ "trackPageName": true,
+ "contextDataPrefix": "rudderstack-context",
+ "useLegacyLinkName": true,
+ "pageNameFallbackTostring": false,
+ "sendFalseValues": true,
+ "productIdentifier": "sku",
+ "eventFilteringOption": "blacklistedEvents",
+ "eventsToTypes": [
+ {
+ "from": "video start",
+ "to": "heartbeatPlaybackStarted"
+ },
+ {
+ "from": "video end",
+ "to": "heartbeatPlaybackCompleted"
+ }
+ ],
+ "listDelimiter": [
+ {
+ "from": "listPhone",
+ "to": ","
+ },
+ {
+ "from": "listMobile",
+ "to": "|"
+ }
+ ],
+ "propsDelimiter": [
+ {
+ "from": "customPhone",
+ "to": ","
+ },
+ {
+ "from": "customMobile",
+ "to": "|"
+ }
+ ],
+ "eventMerchProperties": [
+ {
+ "eventMerchProperties": "currency"
+ },
+ {
+ "eventMerchProperties": "location"
+ }
+ ],
+ "productMerchProperties": [
+ {
+ "productMerchProperties": "productName"
+ },
+ {
+ "productMerchProperties": "productInventory"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "Restart Checkout"
+ },
+ {
+ "eventName": "Restart Initiated"
+ }
+ ],
+ "rudderEventsToAdobeEvents": [
+ {
+ "from": "product searched",
+ "to": "ps1,ps2"
+ }
+ ],
+ "contextDataMapping": [
+ {
+ "from": "page.name",
+ "to": "pName"
+ },
+ {
+ "from": "page.url",
+ "to": "pUrl"
+ }
+ ],
+ "mobileEventMapping": [
+ {
+ "from": "page.name",
+ "to": "pName"
+ },
+ {
+ "from": "page.url",
+ "to": "pUrl"
+ }
+ ],
+ "eVarMapping": [
+ {
+ "from": "phone",
+ "to": "1"
+ },
+ {
+ "from": "mobile",
+ "to": "2"
+ }
+ ],
+ "hierMapping": [
+ {
+ "from": "phone",
+ "to": "1"
+ },
+ {
+ "from": "mobile",
+ "to": "2"
+ }
+ ],
+ "listMapping": [
+ {
+ "from": "listPhone",
+ "to": "1"
+ },
+ {
+ "from": "listMobile",
+ "to": "2"
+ }
+ ],
+ "customPropsMapping": [
+ {
+ "from": "phone",
+ "to": "1"
+ },
+ {
+ "from": "mobile",
+ "to": "2"
+ }
+ ],
+ "eventMerchEventToAdobeEvent": [
+ {
+ "from": "Order Completed",
+ "to": "merchEvent1"
+ }
+ ],
+ "productMerchEventToAdobeEvent": [
+ {
+ "from": "Product Ordered",
+ "to": "MerchProduct1"
+ }
+ ],
+ "productMerchEvarsMap": [
+ {
+ "from": "phone",
+ "to": "1"
+ },
+ {
+ "from": "mobile",
+ "to": "2"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "trackingServerUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics",
+ "trackingServerSecureUrl": "",
+ "sslHeartbeat": false,
+ "heartbeatTrackingServerUrl": "",
+ "useUtf8Charset": false,
+ "useSecureServerSide": false,
+ "proxyNormalUrl": "",
+ "proxyHeartbeatUrl": "",
+ "marketingCloudOrgId": "org10121",
+ "dropVisitorId": false,
+ "timestampOption": "enabled",
+ "timestampOptionalReporting": true,
+ "noFallbackVisitorId": false,
+ "preferVisitorId": false,
+ "trackPageName": true,
+ "contextDataPrefix": "rudderstack-context",
+ "useLegacyLinkName": true,
+ "pageNameFallbackTostring": false,
+ "sendFalseValues": true,
+ "productIdentifier": "sku",
+ "eventsToTypes": [
+ {
+ "from": "video start",
+ "to": "heartbeatPlaybackStarted"
+ },
+ {
+ "from": "video end",
+ "to": "heartbeatPlaybackCompleted"
+ }
+ ],
+ "listDelimiter": [
+ {
+ "from": "customList",
+ "to": "|"
+ },
+ {
+ "from": "listMobile",
+ "to": "|"
+ }
+ ],
+ "propsDelimiter": [
+ {
+ "from": "customPhone",
+ "to": ","
+ },
+ {
+ "from": "customMobile",
+ "to": "|"
+ }
+ ],
+ "eventMerchProperties": [
+ {
+ "eventMerchProperties": "currency"
+ },
+ {
+ "eventMerchProperties": "location"
+ }
+ ],
+ "productMerchProperties": [
+ {
+ "productMerchProperties": "productName"
+ },
+ {
+ "productMerchProperties": "productInventory"
+ }
+ ],
+ "rudderEventsToAdobeEvents": [
+ {
+ "from": "product searched",
+ "to": "ps1,ps2"
+ }
+ ],
+ "contextDataMapping": [
+ {
+ "from": "page.name",
+ "to": "pName"
+ },
+ {
+ "from": "page.url",
+ "to": "pUrl"
+ }
+ ],
+ "mobileEventMapping": [
+ {
+ "from": "page.name",
+ "to": "pName"
+ },
+ {
+ "from": "page.url",
+ "to": "pUrl"
+ }
+ ],
+ "eVarMapping": [
+ {
+ "from": "phone",
+ "to": "1"
+ },
+ {
+ "from": "mobile",
+ "to": "2"
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'reportSuiteIds'"]
+ },
+ {
+ "config": {
+ "trackingServerUrl": "https://www.rudderstack.com/docs/destinations/streaming-destinations/adobe-analytics",
+ "trackingServerSecureUrl": "",
+ "sslHeartbeat": false,
+ "heartbeatTrackingServerUrl": "",
+ "useUtf8Charset": false,
+ "useSecureServerSide": false,
+ "proxyNormalUrl": "",
+ "proxyHeartbeatUrl": "",
+ "marketingCloudOrgId": "org10121",
+ "dropVisitorId": false,
+ "timestampOption": "enabled",
+ "timestampOptionalReporting": true,
+ "noFallbackVisitorId": false,
+ "preferVisitorId": false,
+ "trackPageName": true,
+ "contextDataPrefix": "rudderstack-context",
+ "useLegacyLinkName": true,
+ "pageNameFallbackTostring": false,
+ "sendFalseValues": true,
+ "productIdentifier": "sku",
+ "eventsToTypes": [
+ {
+ "from": "video start",
+ "to": "heartbeatPlaybackStarted"
+ },
+ {
+ "from": "video end",
+ "to": "heartbeatPlaybackCompleted"
+ }
+ ],
+ "listDelimiter": [
+ {
+ "from": "",
+ "to": ""
+ },
+ {
+ "from": "listMobile",
+ "to": "|"
+ }
+ ],
+ "propsDelimiter": [
+ {
+ "from": "customPhone",
+ "to": ","
+ },
+ {
+ "from": "customMobile",
+ "to": "|"
+ }
+ ],
+ "eventMerchProperties": [
+ {
+ "eventMerchProperties": "currency"
+ },
+ {
+ "eventMerchProperties": "location"
+ }
+ ],
+ "productMerchProperties": [
+ {
+ "productMerchProperties": "productName"
+ },
+ {
+ "productMerchProperties": "productInventory"
+ }
+ ],
+ "rudderEventsToAdobeEvents": [
+ {
+ "from": "product searched",
+ "to": "ps1,ps2"
+ }
+ ],
+ "contextDataMapping": [
+ {
+ "from": "page.name",
+ "to": "pName"
+ },
+ {
+ "from": "page.url",
+ "to": "pUrl"
+ }
+ ],
+ "mobileEventMapping": [
+ {
+ "from": "page.name",
+ "to": "pName"
+ },
+ {
+ "from": "page.url",
+ "to": "pUrl"
+ }
+ ],
+ "eVarMapping": [
+ {
+ "from": "phone",
+ "to": "1"
+ },
+ {
+ "from": "mobile",
+ "to": "2"
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'reportSuiteIds'"]
+ },
+ {
+ "config": {
+ "reportSuiteIds": "navvalue01"
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/adroll.json b/test/data/validation/destinations/adroll.json
new file mode 100644
index 000000000..0843d2dc4
--- /dev/null
+++ b/test/data/validation/destinations/adroll.json
@@ -0,0 +1,183 @@
+[
+ {
+ "config": {
+ "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
+ "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "w1"
+ },
+ {
+ "eventName": "w2"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "w1"
+ },
+ {
+ "eventName": "w2"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'advId'"]
+ },
+ {
+ "config": {
+ "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
+ "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ },
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
+ "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "w1"
+ },
+ {
+ "eventName": "w2"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ }
+ ],
+ "useNativeSDK": true,
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["useNativeSDK must be object"]
+ },
+ {
+ "config": {
+ "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "w1"
+ },
+ {
+ "eventName": "w2"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'pixId'"]
+ },
+ {
+ "config": {
+ "advId": "ARHUQ4I4QRA5PEKHSWXFX1",
+ "pixId": "4UA3SEMV6DCPAHIKVOXS4E",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [],
+ "blacklistedEvents": [
+ {
+ "eventName": {
+ "key": "eventValue"
+ }
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["blacklistedEvents.0.eventName must be string"]
+ }
+]
diff --git a/test/data/validation/destinations/af.json b/test/data/validation/destinations/af.json
new file mode 100644
index 000000000..0986bd918
--- /dev/null
+++ b/test/data/validation/destinations/af.json
@@ -0,0 +1,111 @@
+[
+ {
+ "config": {
+ "devKey": "aSL8jBa1DG9erAmMxRPiLM",
+ "androidAppId": "com.yara.fw.stage",
+ "appleAppId": "1202646468",
+ "useRichEventName": true,
+ "sharingFilter": "all",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "devKey_event"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "useNativeSDK": {
+ "android": true
+ },
+ "androidAppId": "in.mintpro.debug",
+ "useRichEventName": true,
+ "sharingFilter": "all",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'devKey'"]
+ },
+ {
+ "config": {
+ "devKey": "KPH1PgKOKNst12LgFnQ8EI",
+ "androidAppId": "com.mycom.android.parent.debug",
+ "appleAppId": "id1251122201",
+ "useRichEventName": false,
+ "sharingFilter": "all",
+ "eventFilteringOption": "blacklistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "Onboarding Opening"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "Application Backgrounded"
+ }
+ ],
+ "useNativeSDK": {
+ "ios": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "devKey": "P4kRcaFz8d6WwjpoosM3M1",
+ "useNativeSDK": {
+ "ios": true
+ },
+ "appleAppId": "1524157507",
+ "androidAppId": ""
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "devKey": "fSk3Lt3dVaWRTQ8H5m7BvI",
+ "useRichEventName": false,
+ "sharingFilter": "all",
+ "useNativeSDK": {
+ "reactnative": false
+ },
+ "appleAppId": 1565920403
+ },
+ "result": false,
+ "err": ["appleAppId must be string"]
+ },
+ {
+ "config": {
+ "devKey": "aSL8jBa1DG9erAmMxRPiLM",
+ "androidAppId": "com.yara.fw.stage",
+ "appleAppId": "1202646468",
+ "useRichEventName": true,
+ "sharingFilter": "qwssjfhncbhfjehduhendhhcidkfhhzvvxxpoiqwbfhfjjdskkdhviiwyrtehegdgyksjhjffmcnbcnvopoqweebdgggvcjkicjjcjcjnnzxxcxxxsdjjhjhjfhfgffhhhtjjjwwoo",
+ "eventFilteringOption": "whitelistedEvents",
+ "useNativeSDK": {
+ "cordova": true
+ },
+ "whitelistedEvents": [
+ {
+ "eventName": "devKey_event"
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "sharingFilter must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/am.json b/test/data/validation/destinations/am.json
new file mode 100644
index 000000000..df95f5aa0
--- /dev/null
+++ b/test/data/validation/destinations/am.json
@@ -0,0 +1,448 @@
+[
+ {
+ "config": {
+ "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70",
+ "apiSecret": "a41d5bc768831f083e3dacwecfgf7398",
+ "groupTypeTrait": "company_id",
+ "groupValueTrait": "company_name",
+ "trackAllPages": false,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": false,
+ "trackRevenuePerProduct": false,
+ "versionName": "1.11.3",
+ "residencyServer": "standard",
+ "traitsToIncrement": [
+ {
+ "traits": "presentclass"
+ },
+ {
+ "traits": "presentgrade"
+ }
+ ],
+ "traitsToPrepend": [
+ {
+ "traits": "prequelclass"
+ }
+ ],
+ "traitsToSetOnce": [
+ {
+ "traits": "initialclass"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "preferAnonymousIdForDeviceId": {
+ "web": false
+ },
+ "deviceIdFromUrlParam": {
+ "web": false
+ },
+ "forceHttps": {
+ "web": false
+ },
+ "trackGclid": {
+ "web": true
+ },
+ "trackReferrer": {
+ "web": true
+ },
+ "saveParamsReferrerOncePerSession": {
+ "web": true
+ },
+ "trackUtmProperties": {
+ "web": true
+ },
+ "unsetParamsReferrerOnNewSession": {
+ "web": false
+ },
+ "batchEvents": {
+ "web": false
+ },
+ "eventUploadPeriodMillis": {
+ "web": "30000"
+ },
+ "eventUploadThreshold": {
+ "web": "30"
+ },
+ "blacklistedEvents": [
+ {
+ "eventName": "AM sample removed"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "AM allowed customer check"
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "a41d5bc768831f083e2swcwecfgf7398",
+ "groupTypeTrait": "",
+ "groupValueTrait": "",
+ "trackAllPages": true,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": false,
+ "trackRevenuePerProduct": false,
+ "versionName": "1.0.1",
+ "residencyServer": "EU",
+ "traitsToIncrement": [
+ {
+ "traits": "profile_trait"
+ }
+ ],
+ "traitsToSetOnce": [
+ {
+ "traits": "init"
+ },
+ {
+ "traits": "init02"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "preferAnonymousIdForDeviceId": {
+ "web": false
+ },
+ "deviceIdFromUrlParam": {
+ "web": false
+ },
+ "forceHttps": {
+ "web": true
+ },
+ "trackGclid": {
+ "web": true
+ },
+ "trackReferrer": {
+ "web": true
+ },
+ "saveParamsReferrerOncePerSession": {
+ "web": true
+ },
+ "trackUtmProperties": {
+ "web": false
+ },
+ "unsetParamsReferrerOnNewSession": {
+ "web": false
+ },
+ "batchEvents": {
+ "web": false
+ },
+ "eventUploadPeriodMillis": {
+ "web": "30000"
+ },
+ "eventUploadThreshold": {
+ "web": "30"
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "32fc323b8c13214e46470b519edpo401",
+ "groupTypeTrait": "Finsys_app_Stage",
+ "groupValueTrait": "Finsys Stage",
+ "trackAllPages": true,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": true,
+ "trackRevenuePerProduct": true,
+ "versionName": "",
+ "residencyServer": "standard",
+ "traitsToIncrement": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToSetOnce": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToAppend": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToPrepend": [
+ {
+ "traits": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "12fd322b8c13214e36450b519typo402",
+ "groupTypeTrait": "Modelorama_app_Stage",
+ "groupValueTrait": "Modelorama Stage",
+ "trackAllPages": true,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": true,
+ "trackRevenuePerProduct": true,
+ "versionName": "",
+ "residencyServer": "standard",
+ "traitsToIncrement": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToSetOnce": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToAppend": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToPrepend": [
+ {
+ "traits": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "1173185cre3a65172943ba1e41113dwd",
+ "groupTypeTrait": {
+ "prop": "new"
+ },
+ "groupValueTrait": "",
+ "trackAllPages": true,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": false,
+ "trackRevenuePerProduct": false,
+ "versionName": "",
+ "residencyServer": "standard",
+ "traitsToIncrement": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToSetOnce": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToAppend": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToPrepend": [
+ {
+ "traits": ""
+ }
+ ],
+ "useNativeSDK": {},
+ "preferAnonymousIdForDeviceId": {},
+ "deviceIdFromUrlParam": {},
+ "forceHttps": {},
+ "trackGclid": {},
+ "trackReferrer": {},
+ "saveParamsReferrerOncePerSession": {},
+ "trackUtmProperties": {},
+ "unsetParamsReferrerOnNewSession": {},
+ "batchEvents": {},
+ "eventUploadPeriodMillis": {},
+ "eventUploadThreshold": {},
+ "blacklistedEvents": [],
+ "whitelistedEvents": []
+ },
+ "result": false,
+ "err": ["groupTypeTrait must be string"]
+ },
+ {
+ "config": {
+ "apiKey": "1173185cre3a65172943ba1e41113dwd",
+ "groupTypeTrait": "",
+ "groupValueTrait": "",
+ "trackAllPages": true,
+ "trackCategorizedPages": false,
+ "trackNamedPages": true,
+ "trackProductsOnce": false,
+ "trackRevenuePerProduct": false,
+ "versionName": "1.1.01",
+ "residencyServer": "standard",
+ "traitsToIncrement": [
+ {
+ "traits": {
+ "trait_name": "common01"
+ }
+ }
+ ],
+ "traitsToSetOnce": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToAppend": [
+ {
+ "traits": ""
+ }
+ ],
+ "traitsToPrepend": [
+ {
+ "traits": ""
+ }
+ ],
+ "useNativeSDK": {},
+ "preferAnonymousIdForDeviceId": {},
+ "deviceIdFromUrlParam": {},
+ "forceHttps": {},
+ "trackGclid": {},
+ "trackReferrer": {},
+ "saveParamsReferrerOncePerSession": {},
+ "trackUtmProperties": {},
+ "unsetParamsReferrerOnNewSession": {},
+ "batchEvents": {},
+ "eventUploadPeriodMillis": {},
+ "eventUploadThreshold": {},
+ "blacklistedEvents": [],
+ "whitelistedEvents": []
+ },
+ "result": false,
+ "err": ["traitsToIncrement.0.traits must be string"]
+ },
+ {
+ "config": {
+ "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70",
+ "apiSecret": "a41d5bc768831f083e3dacwecfgf7398",
+ "groupTypeTrait": "college_id",
+ "groupValueTrait": "college_name",
+ "trackAllPages": false,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": false,
+ "trackRevenuePerProduct": false,
+ "versionName": "1.11.3",
+ "residencyServer": "standard",
+ "traitsToIncrement": [
+ {
+ "traits": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "preferAnonymousIdForDeviceId": {
+ "web": false
+ },
+ "deviceIdFromUrlParam": {
+ "web": false
+ },
+ "forceHttps": {
+ "web": false
+ },
+ "trackGclid": {
+ "web": true
+ },
+ "trackReferrer": {
+ "web": true
+ },
+ "saveParamsReferrerOncePerSession": {
+ "web": true
+ },
+ "trackUtmProperties": {
+ "web": true
+ },
+ "unsetParamsReferrerOnNewSession": {
+ "web": false
+ },
+ "batchEvents": {
+ "web": false
+ },
+ "eventUploadPeriodMillis": {
+ "web": "3a-6b0000"
+ },
+ "eventUploadThreshold": {
+ "web": "30"
+ }
+ },
+ "result": false,
+ "err": [
+ "eventUploadPeriodMillis.web must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70",
+ "apiSecret": "a41d5bc768831f083e3dacwecfgf7398",
+ "groupTypeTrait": "college_id",
+ "groupValueTrait": "college_name",
+ "trackAllPages": false,
+ "trackCategorizedPages": true,
+ "trackNamedPages": true,
+ "trackProductsOnce": false,
+ "trackRevenuePerProduct": false,
+ "versionName": "1.11.3",
+ "residencyServer": "EU",
+ "traitsToIncrement": [
+ {
+ "traits": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "preferAnonymousIdForDeviceId": {
+ "web": false
+ },
+ "deviceIdFromUrlParam": {
+ "web": false
+ },
+ "forceHttps": {
+ "web": false
+ },
+ "trackGclid": {
+ "web": true
+ },
+ "trackReferrer": {
+ "web": true
+ },
+ "saveParamsReferrerOncePerSession": {
+ "web": true
+ },
+ "trackUtmProperties": {
+ "web": true
+ },
+ "unsetParamsReferrerOnNewSession": {
+ "web": false
+ },
+ "batchEvents": {
+ "web": false
+ },
+ "eventUploadPeriodMillis": {
+ "web": "5672"
+ },
+ "eventUploadThreshold": {
+ "web": "30c"
+ }
+ },
+ "result": false,
+ "err": [
+ "eventUploadThreshold.web must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/attentive_tag.json b/test/data/validation/destinations/attentive_tag.json
new file mode 100644
index 000000000..15e0140a8
--- /dev/null
+++ b/test/data/validation/destinations/attentive_tag.json
@@ -0,0 +1,27 @@
+[
+ {
+ "config": {
+ "apiKey": "",
+ "signUpSourceId": "123456"
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiKey": "str_1435jbakh012",
+ "signUpSourceId": "123y56"
+ },
+ "result": false,
+ "err": [
+ "signUpSourceId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
+ ]
+ },
+ {
+ "config": {
+ "apiKey": "jkdhfkjdhfkjdhr38yhr3f3",
+ "signUpSourceId": "123456"
+ },
+ "result": true
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/attribution_test.json b/test/data/validation/destinations/attribution.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/attribution_test.json
rename to test/data/validation/destinations/attribution.json
diff --git a/src/validations/__tests__/validation_test_data/awin_test.json b/test/data/validation/destinations/awin.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/awin_test.json
rename to test/data/validation/destinations/awin.json
diff --git a/test/data/validation/destinations/axeptio.json b/test/data/validation/destinations/axeptio.json
new file mode 100644
index 000000000..d22c80c38
--- /dev/null
+++ b/test/data/validation/destinations/axeptio.json
@@ -0,0 +1,46 @@
+[
+ {
+ "config": {
+ "clientId": "dskh4ryfhc347896ryfh",
+ "toggleToActivateCallback": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "clientId": "",
+ "toggleToActivateCallback": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["clientId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "clientId": "dskh4ryfhc347896ryfh",
+ "toggleToActivateCallback": "false",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["toggleToActivateCallback must be boolean"]
+ }
+]
diff --git a/test/data/validation/destinations/azure_datalake.json b/test/data/validation/destinations/azure_datalake.json
new file mode 100644
index 000000000..3c02daa5a
--- /dev/null
+++ b/test/data/validation/destinations/azure_datalake.json
@@ -0,0 +1,165 @@
+[
+ {
+ "config": {
+ "containerName": "test-container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "containerName": "test-container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "",
+ "useSASTokens": false,
+ "syncFrequency": "30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "containerName": "test-container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "syncFrequency": "30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "containerName": "test-container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "syncFrequency": "30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "containerName": "test-container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": false,
+ "syncFrequency": "30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "containerName": "test-container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": [
+ " must have required property 'accountKey'",
+ " must have required property 'useSASTokens'",
+ " must have required property 'sasToken'",
+ " must match a schema in anyOf"
+ ]
+ },
+ {
+ "config": {
+ "containerName": "test-container-test-container-test-container-test-container-test-container-test-container-test-container-test-container-",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ },
+ {
+ "config": {
+ "containerName": "test.container",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ },
+ {
+ "config": {
+ "containerName": "testContainer",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ },
+ {
+ "config": {
+ "containerName": "ab",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ },
+ {
+ "config": {
+ "containerName": "ab..ab",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ },
+ {
+ "config": {
+ "containerName": "ab--ab",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ },
+ {
+ "config": {
+ "containerName": "1.2.3.4",
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "syncFrequency": "30"
+ },
+ "result": false,
+ "err": ["containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\""]
+ }
+]
diff --git a/test/data/validation/destinations/azure_synapse.json b/test/data/validation/destinations/azure_synapse.json
new file mode 100644
index 000000000..4800b22f4
--- /dev/null
+++ b/test/data/validation/destinations/azure_synapse.json
@@ -0,0 +1,276 @@
+[
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test-bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ " must have required property 'accountKey'",
+ " must have required property 'useSASTokens'",
+ " must have required property 'sasToken'",
+ " must match a schema in anyOf",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "useRudderStorage": false,
+ "sslMode": "disable",
+ "bucketProvider": "MINIO",
+ "syncFrequency": "30",
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "secretAccessKey": "test-secret-access-key",
+ "endPoint": "https:test.com",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "useRudderStorage": false,
+ "syncFrequency": "30",
+ "bucketName": "ab..ab",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test..bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test--container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "useRudderStorage": false,
+ "sslMode": "disable",
+ "bucketProvider": "MINIO",
+ "syncFrequency": "30",
+ "bucketName": "1.2.3.4",
+ "accessKeyID": "test-access-key-id",
+ "secretAccessKey": "test-secret-access-key",
+ "endPoint": "https:test.com",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/bq_test.json b/test/data/validation/destinations/bq.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/bq_test.json
rename to test/data/validation/destinations/bq.json
diff --git a/src/validations/__tests__/validation_test_data/braze_test.json b/test/data/validation/destinations/braze.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/braze_test.json
rename to test/data/validation/destinations/braze.json
diff --git a/test/data/validation/destinations/canny.json b/test/data/validation/destinations/canny.json
new file mode 100644
index 000000000..251d5396b
--- /dev/null
+++ b/test/data/validation/destinations/canny.json
@@ -0,0 +1,47 @@
+[
+ {
+ "config": {
+ "apiKey": "abcd123",
+ "eventsToEvents": [
+ {
+ "from": "First",
+ "to": "createVote"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "",
+ "eventsToEvents": [
+ {
+ "from": "First",
+ "to": "createPost"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiKey": "abcd",
+ "eventsToEvents": [
+ {
+ "from": "First",
+ "to": "createPost"
+ },
+ {
+ "from": "Second",
+ "to": "createPost"
+ },
+ {
+ "from": "First",
+ "to": "createVote"
+ }
+ ]
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/clickhouse.json b/test/data/validation/destinations/clickhouse.json
new file mode 100644
index 000000000..4800b22f4
--- /dev/null
+++ b/test/data/validation/destinations/clickhouse.json
@@ -0,0 +1,276 @@
+[
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test-bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ " must have required property 'accountKey'",
+ " must have required property 'useSASTokens'",
+ " must have required property 'sasToken'",
+ " must match a schema in anyOf",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "useRudderStorage": false,
+ "sslMode": "disable",
+ "bucketProvider": "MINIO",
+ "syncFrequency": "30",
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "secretAccessKey": "test-secret-access-key",
+ "endPoint": "https:test.com",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "useRudderStorage": false,
+ "syncFrequency": "30",
+ "bucketName": "ab..ab",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test..bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test--container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "useRudderStorage": false,
+ "sslMode": "disable",
+ "bucketProvider": "MINIO",
+ "syncFrequency": "30",
+ "bucketName": "1.2.3.4",
+ "accessKeyID": "test-access-key-id",
+ "secretAccessKey": "test-secret-access-key",
+ "endPoint": "https:test.com",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/clickup.json b/test/data/validation/destinations/clickup.json
new file mode 100644
index 000000000..e1d881a33
--- /dev/null
+++ b/test/data/validation/destinations/clickup.json
@@ -0,0 +1,98 @@
+[
+ {
+ "config": {
+ "apiToken": "pk_880343042_1W64ZBPLP71H5YAYAUEJHSRL",
+ "listId": "175496000",
+ "keyToCustomFieldName": [
+ {
+ "from": "Industry",
+ "to": "industry"
+ }
+ ],
+ "whitelistedEvents": [{ "eventName": "" }]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiToken": "pk_880343042_1W64ZBPLP71H5YAYAUEJHSRL",
+ "listId": "175496000",
+ "keyToCustomFieldName": [
+ {
+ "from": "Industry",
+ "to": "industry"
+ },
+ {
+ "from": "Account Size",
+ "to": "accountSize"
+ },
+ {
+ "from": "Contact Title",
+ "to": "contactTitle"
+ },
+ {
+ "from": "Payment Status",
+ "to": "paymentStatus"
+ }
+ ],
+ "whitelistedEvents": [{ "eventName": "" }, { "eventName": "Product Viewed" }]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiToken": 8872341,
+ "listId": "175496000",
+ "keyToCustomFieldName": [
+ {
+ "from": "Industry",
+ "to": "industry"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["apiToken must be string"]
+ },
+ {
+ "config": {
+ "apiToken": "",
+ "listId": "175496000",
+ "keyToCustomFieldName": [
+ {
+ "from": "Industry",
+ "to": "industry"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["apiToken must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiToken": "8872341",
+ "listId": "",
+ "keyToCustomFieldName": [
+ {
+ "from": "Industry",
+ "to": "industry"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["listId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "listId": "175496000"
+ },
+ "result": false,
+ "err": [" must have required property 'apiToken'"]
+ },
+ {
+ "config": {
+ "apiToken": "8872341"
+ },
+ "result": false,
+ "err": [" must have required property 'listId'"]
+ }
+]
diff --git a/test/data/validation/destinations/convertflow.json b/test/data/validation/destinations/convertflow.json
new file mode 100644
index 000000000..581439807
--- /dev/null
+++ b/test/data/validation/destinations/convertflow.json
@@ -0,0 +1,67 @@
+[
+ {
+ "config": {
+ "websiteId": "",
+ "toggleToSendData": false,
+ "eventsList": "cfView",
+ "eventsMapping": [
+ {
+ "from": "cfView",
+ "to": "Viewed CTA"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["websiteId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,10})$\""]
+ },
+ {
+ "config": {
+ "websiteId": "47838",
+ "toggleToSendData": "false",
+ "eventsList": "cfView",
+ "eventsMapping": [
+ {
+ "from": "cfView",
+ "to": "Viewed CTA"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["toggleToSendData must be boolean"]
+ },
+ {
+ "config": {
+ "websiteId": "23894",
+ "toggleToSendData": true,
+ "eventsList": "cfView",
+ "eventsMapping": [
+ {
+ "from": "cfView",
+ "to": "Viewed CTA"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/criteo.json b/test/data/validation/destinations/criteo.json
new file mode 100644
index 000000000..0e3454de6
--- /dev/null
+++ b/test/data/validation/destinations/criteo.json
@@ -0,0 +1,129 @@
+[
+ {
+ "config": {
+ "accountId": "12",
+ "homePageUrl": "https://www.google.com",
+ "hashMethod": "md5",
+ "fieldMapping": [
+ {
+ "from": "signup",
+ "to": "billing"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "login"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "ad_disabled"
+ }
+ ],
+ "eventFilteringOption": "whitelistedEvents",
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "product"
+ }
+ ]
+ },
+ "eventsToStandard": [
+ {
+ "from": "add to cart",
+ "to": "product viewed"
+ },
+ {
+ "from": "cart checkout",
+ "to": "cart viewed"
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "accountId": "",
+ "homePageUrl": "https://www.facebook.com",
+ "hashMethod": "md5",
+ "fieldMapping": [
+ {
+ "from": "signup",
+ "to": "billing"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "login"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "ad_disabled"
+ }
+ ],
+ "eventFilteringOption": "whitelistedEvents",
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "product"
+ }
+ ]
+ },
+ "eventsToStandard": [
+ {
+ "from": "add to cart",
+ "to": "product viewed"
+ },
+ {
+ "from": "cart checkout",
+ "to": "cart viewed"
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ },
+ "result": false,
+ "err": ["accountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[1-9]+$\""]
+ },
+ {
+ "config": {
+ "accountId": "15",
+ "fieldMapping": [
+ {
+ "from": "login",
+ "to": "logout"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "product added"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "ad_disabled"
+ }
+ ],
+ "eventFilteringOption": "whitelistedEvents",
+ "eventsToStandard": [
+ {
+ "from": "add to cart",
+ "to": "product viewed"
+ },
+ {
+ "from": "cart checkout",
+ "to": "cart viewed"
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/custify.json b/test/data/validation/destinations/custify.json
new file mode 100644
index 000000000..d95e516aa
--- /dev/null
+++ b/test/data/validation/destinations/custify.json
@@ -0,0 +1,32 @@
+[
+ {
+ "config": {
+ "apiKey": "testapikey",
+ "sendAnonymousId": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "sendAnonymousId": true
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "description": "TODO:We dont have a validation for empty string need to figure out this",
+ "config": {
+ "apiKey": "",
+ "sendAnonymousId": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "testapikey",
+ "sendAnonymousId": 123
+ },
+ "result": false,
+ "err": ["sendAnonymousId must be boolean"]
+ }
+]
diff --git a/test/data/validation/destinations/customerio.json b/test/data/validation/destinations/customerio.json
new file mode 100644
index 000000000..96df60d0a
--- /dev/null
+++ b/test/data/validation/destinations/customerio.json
@@ -0,0 +1,166 @@
+[
+ {
+ "config": {
+ "siteID": "95bd1331112976i0ff9b",
+ "apiKey": "95bd1331112976i0ff9b",
+ "deviceTokenEventName": "device_token_registered",
+ "datacenterEU": false,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": "eventmodel"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "taxmodel"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "95bd1331112976i0ff9b",
+ "deviceTokenEventName": "device_token_registered",
+ "datacenterEU": false,
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "eventmodel"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "taxmodel"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'siteID'"]
+ },
+ {
+ "config": {
+ "siteID": "95bd1331112976i0ff9b",
+ "apiKey": "95bd1330072974f0ff9b",
+ "deviceTokenEventName": "device_location_registered",
+ "datacenterEU": true,
+ "whitelistedEvents": [
+ {
+ "eventName": "practice"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "spam_listings"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Sales"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "siteID": "15bd1331112976i0ff9b",
+ "apiKey": "15bd1331112976i0ff9b",
+ "deviceTokenEventName": "device_id_removed",
+ "datacenterEU": false,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ["e1", "v1"]
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "taxmodel"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Pitch"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["whitelistedEvents.0.eventName must be string"]
+ },
+ {
+ "config": {
+ "siteID": "95bd1331112976i0ff9b",
+ "apiKey": "95bd1331112976i0ff9b",
+ "deviceTokenEventName": "device_token_registered",
+ "datacenterEU": "Germany",
+ "eventFilteringOption": "disable",
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["datacenterEU must be boolean"]
+ },
+ {
+ "config": {
+ "siteID": "95bd1331112976i0ff9b",
+ "apiKey": "95bd1331112976i0ff9b",
+ "deviceTokenEventName": "qwsafpmznjhbfjhchdgeiuudhwgvdfkzxuiookaghhrytedhgfgjslalapooiqnbvemixuhevvsjklodjdokhuijghqwnvzxccdwsalkijediwhfwibkjnkji",
+ "datacenterEU": true,
+ "eventFilteringOption": "disable",
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": [
+ "deviceTokenEventName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/dcm_floodlight.json b/test/data/validation/destinations/dcm_floodlight.json
new file mode 100644
index 000000000..2284f8851
--- /dev/null
+++ b/test/data/validation/destinations/dcm_floodlight.json
@@ -0,0 +1,266 @@
+[
+ {
+ "config": {
+ "advertiserId": "22448662",
+ "activityTag": "",
+ "groupTag": "",
+ "conversionEvents": [
+ {
+ "eventName": "Product viewed",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv01",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "RudderstackProperty1",
+ "to": "1"
+ },
+ {
+ "from": "RudderstackProperty2",
+ "to": "2"
+ }
+ ]
+ },
+ {
+ "eventName": "Order Complete",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv02",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "",
+ "to": ""
+ }
+ ]
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "advertiserId": "22448662",
+ "activityTag": "",
+ "groupTag": "",
+ "conversionEvents": [
+ {
+ "eventName": "Product viewed",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv01",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "RudderstackProperty1",
+ "to": "u1"
+ },
+ {
+ "from": "RudderstackProperty2",
+ "to": "2"
+ }
+ ]
+ },
+ {
+ "eventName": "Order Complete",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv02",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "",
+ "to": ""
+ }
+ ]
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "conversionEvents.0.customVariables.0.to must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "advertiserId": "12AUXUS123",
+ "activityTag": "",
+ "groupTag": "",
+ "conversionEvents": [
+ {
+ "eventName": "Product viewed",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv01",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "RudderstackProperty1",
+ "to": "1"
+ },
+ {
+ "from": "RudderstackProperty2",
+ "to": "2"
+ }
+ ]
+ },
+ {
+ "eventName": "Order Complete",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv02",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "",
+ "to": ""
+ }
+ ]
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "advertiserId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]{0,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "advertiserId": "22448662",
+ "activityTag": "",
+ "groupTag": "",
+ "conversionEvents": [
+ {
+ "eventName": "Product viewed",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv01",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "RudderstackProperty1",
+ "to": "1"
+ },
+ {
+ "from": "RudderstackProperty2",
+ "to": "2"
+ }
+ ]
+ },
+ {
+ "eventName": "Order Complete",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv02",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "",
+ "to": ""
+ }
+ ]
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "conversionLinker": {
+ "web": true
+ },
+ "allowAdPersonalizationSignals": {
+ "web": true
+ },
+ "tagFormat": "globalSiteTag",
+ "doubleclickId": {
+ "web": true
+ },
+ "googleNetworkId": {
+ "web": "1234"
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "advertiserId": "22448662",
+ "activityTag": "",
+ "groupTag": "",
+ "conversionEvents": [
+ {
+ "eventName": "Product viewed",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv01",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "RudderstackProperty1",
+ "to": "1"
+ },
+ {
+ "from": "RudderstackProperty2",
+ "to": "2"
+ }
+ ]
+ },
+ {
+ "eventName": "Order Complete",
+ "floodlightActivityTag": "signu01",
+ "floodlightGroupTag": "conv02",
+ "salesTag": false,
+ "customVariables": [
+ {
+ "from": "",
+ "to": ""
+ }
+ ]
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "conversionLinker": {
+ "web": true
+ },
+ "allowAdPersonalizationSignals": {
+ "web": true
+ },
+ "tagFormat": "iframeTag",
+ "doubleclickId": {
+ "web": false
+ },
+ "googleNetworkId": {
+ "web": "1234"
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/deltalake.json b/test/data/validation/destinations/deltalake.json
new file mode 100644
index 000000000..36b265565
--- /dev/null
+++ b/test/data/validation/destinations/deltalake.json
@@ -0,0 +1,226 @@
+[
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "bucketProvider": "S3",
+ "syncFrequency": "30",
+ "enableSSE": false,
+ "useRudderStorage": false,
+ "useSTSTokens": false,
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test-bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ " must have required property 'accountKey'",
+ " must have required property 'useSASTokens'",
+ " must have required property 'sasToken'",
+ " must match a schema in anyOf",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "enableSSE": false,
+ "useRudderStorage": false,
+ "useSTSTokens": false,
+ "syncFrequency": "30",
+ "bucketName": "ab..ab",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].*)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test..bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].*)|^((?!goog)(?!.*google.*)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "path": "test-path",
+ "token": "test-token",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test--container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "containerName must match pattern \"(^env[.].*)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
+ " must match \"then\" schema"
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/discord.json b/test/data/validation/destinations/discord.json
new file mode 100644
index 000000000..2ba16ac4d
--- /dev/null
+++ b/test/data/validation/destinations/discord.json
@@ -0,0 +1,80 @@
+[
+ {
+ "config": {
+ "identifyTemplate": "",
+ "webhookUrl": "https://api.discord.com/1234/5678/1457",
+ "embedTitleTemplate": "",
+ "embedDescriptionTemplate": "",
+ "embedFlag": true,
+ "eventTemplateSettings": [
+ {
+ "eventName": "",
+ "eventTemplate": "",
+ "eventRegex": false
+ }
+ ],
+ "whitelistedTraitsSettings": [
+ {
+ "trait": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "identifyTemplate": "",
+ "webhookUrl": "https://api.discord.com/1234/5678/1457",
+ "embedFlag": false,
+ "eventTemplateSettings": [
+ {
+ "eventName": "abc",
+ "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
+ "eventRegex": false
+ }
+ ],
+ "whitelistedTraitsSettings": [
+ {
+ "trait": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "identifyTemplate": "",
+ "embedTitleTemplate": "Rudderstack Message",
+ "embedDescriptionTemplate": " {{name}}",
+ "embedFlag": true,
+ "webhookUrl": ""
+ },
+ "result": false,
+ "err": [
+ "webhookUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(https?|ftp)://[^\\s/$.?#].[^\\s]*$\""
+ ]
+ },
+ {
+ "config": {
+ "identifyTemplate": "",
+ "webhookUrl": "https://api.discord.com/1234/5678/1457",
+ "eventTemplateSettings": [
+ {
+ "eventName": 1234,
+ "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
+ "eventRegex": "false"
+ }
+ ],
+ "whitelistedTraitsSettings": [
+ {
+ "trait": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "eventTemplateSettings.0.eventName must be string",
+ "eventTemplateSettings.0.eventRegex must be boolean"
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/facebook_pixel.json b/test/data/validation/destinations/facebook_pixel.json
new file mode 100644
index 000000000..c358c6aaf
--- /dev/null
+++ b/test/data/validation/destinations/facebook_pixel.json
@@ -0,0 +1,204 @@
+[
+ {
+ "config": {
+ "pixelId": "471828257250906",
+ "accessToken": "EABAKGVmm4FjBAKAHtWZB4er7fVTjFdJD33daH3ZB340qWk7Nv9MwZCOE0f27EKZA1LQxkQD8hQy1ZBb3SkIgeLcqZAbVtVXbpumoOtpqkP9fRqM0bZCeozeWkH3Y4TZCUpUeUsgKwGDqZB9QrrZCGwRcF9YZAvPDjZAT0YJjWNWQCKhnMQ2OEnrjtJmJgsWDicELxEAZD",
+ "standardPageCall": true,
+ "valueFieldIdentifier": "properties.price",
+ "advancedMapping": false,
+ "limitedDataUSage": false,
+ "testDestination": false,
+ "testEventCode": "",
+ "eventFilteringOption": "whitelistedEvents",
+ "eventsToEvents": [
+ {
+ "from": "named",
+ "to": "class"
+ }
+ ],
+ "eventCustomProperties": [
+ {
+ "eventCustomProperties": "custom101"
+ }
+ ],
+ "blacklistPiiProperties": [
+ {
+ "blacklistPiiProperties": "",
+ "blacklistPiiHash": true
+ }
+ ],
+ "whitelistPiiProperties": [
+ {
+ "whitelistPiiProperties": "passed"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "login"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "adblocker_disabled"
+ }
+ ],
+ "categoryToContent": [
+ {
+ "from": "app_signup",
+ "to": "completed"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "accessToken": "EABAKGVmm4FjB7fVTjFdJD33daH3ZB340qWk7Nv9MwZCOE0f27EKZA1LQxkQD8hQy1ZBb3SkIgeLcqZAbVtVXbpumoOtpqkP9fRqM0bZCeozeWkH3Y4TZCUpUeUsgKwGDqZB9QrrZCGwRcF9YZAvPDjZAT0YJjWNWQCKhnMQ2OEnrjtJmJgsWDicELxEAZD",
+ "standardPageCall": false,
+ "valueFieldIdentifier": "properties.price",
+ "advancedMapping": false,
+ "limitedDataUSage": true,
+ "testDestination": false,
+ "testEventCode": "",
+ "eventFilteringOption": "whitelistedEvents",
+ "eventsToEvents": [
+ {
+ "from": "name",
+ "to": "grade"
+ }
+ ],
+ "eventCustomProperties": [
+ {
+ "eventCustomProperties": "remarks"
+ }
+ ],
+ "blacklistPiiProperties": [
+ {
+ "blacklistPiiProperties": "",
+ "blacklistPiiHash": true
+ }
+ ],
+ "whitelistPiiProperties": [
+ {
+ "whitelistPiiProperties": "passed"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "categoryToContent": [
+ {
+ "from": "app_signup",
+ "to": "completed"
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'pixelId'"]
+ },
+ {
+ "config": {
+ "pixelId": "295131421571462",
+ "advancedMapping": false,
+ "blacklistPiiProperties": [
+ {
+ "blacklistPiiProperties": "",
+ "blacklistPiiHash": false
+ }
+ ],
+ "eventsToEvents": [
+ {
+ "from": "PageView",
+ "to": "ViewContent"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pixelId": "457112234567291",
+ "accessToken": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
+ "standardPageCall": false,
+ "valueFieldIdentifier": "properties.price",
+ "advancedMapping": false,
+ "limitedDataUSage": false,
+ "testDestination": false,
+ "testEventCode": "TEST83176",
+ "eventFilteringOption": "disable",
+ "eventsToEvents": [
+ {
+ "from": "app terminated",
+ "to": "close"
+ },
+ {
+ "from": "app installed",
+ "to": "init"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pixelId": "457112234567291",
+ "accessToken": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
+ "standardPageCall": false,
+ "valueFieldIdentifier": "properties.price",
+ "advancedMapping": false,
+ "limitedDataUSage": true,
+ "testDestination": true,
+ "testEventCode": "TEST1010",
+ "eventFilteringOption": "disable",
+ "eventsToEvents": [
+ {
+ "from": "app terminated",
+ "to": "close"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pixelId": "457112234567291",
+ "accessToken": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
+ "standardPageCall": false,
+ "valueFieldIdentifier": "properties.price",
+ "advancedMapping": false,
+ "limitedDataUSage": false,
+ "testDestination": true,
+ "testEventCode": "EAAEOkKbzt8cBAJFgWYuG6bE5ycjssu71bCg4F4wzPh682n4YEBOZAmjbcdlru53CIvXt1MJb9SpliIGbauYrjxzyGtzBmyVenyyJkZCHX2KtoMVn7njwFNk3jtEUDYOS49OOE5YSbZBUznGlICSfZAAjBUyQ8cXmu0LtfXpXsA6gqjjqd1vXHLv8ycGY2CIZS",
+ "eventFilteringOption": "disable",
+ "eventsToEvents": [
+ {
+ "from": "app terminated",
+ "to": "close"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": false,
+ "err": [
+ "testEventCode must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/freshmarketer.json b/test/data/validation/destinations/freshmarketer.json
new file mode 100644
index 000000000..6bece2cec
--- /dev/null
+++ b/test/data/validation/destinations/freshmarketer.json
@@ -0,0 +1,39 @@
+[
+ {
+ "config": {
+ "apiKey": "",
+ "domain": "mytest-1234"
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiKey": "adhs123-adhs123-adhs3",
+ "domain": "mytest-1234"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "adhs123-adhs123-adhs3"
+ },
+ "result": false,
+ "err": [" must have required property 'domain'"]
+ },
+ {
+ "config": {
+ "domain": "mytest-1234"
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "adhs123-adhs123-adhs3",
+ "domain": ""
+ },
+ "result": false,
+ "err": ["domain must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ }
+]
diff --git a/test/data/validation/destinations/freshsales.json b/test/data/validation/destinations/freshsales.json
new file mode 100644
index 000000000..6bece2cec
--- /dev/null
+++ b/test/data/validation/destinations/freshsales.json
@@ -0,0 +1,39 @@
+[
+ {
+ "config": {
+ "apiKey": "",
+ "domain": "mytest-1234"
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiKey": "adhs123-adhs123-adhs3",
+ "domain": "mytest-1234"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "adhs123-adhs123-adhs3"
+ },
+ "result": false,
+ "err": [" must have required property 'domain'"]
+ },
+ {
+ "config": {
+ "domain": "mytest-1234"
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "adhs123-adhs123-adhs3",
+ "domain": ""
+ },
+ "result": false,
+ "err": ["domain must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ }
+]
diff --git a/test/data/validation/destinations/ga.json b/test/data/validation/destinations/ga.json
new file mode 100644
index 000000000..5fcaf86c1
--- /dev/null
+++ b/test/data/validation/destinations/ga.json
@@ -0,0 +1,304 @@
+[
+ {
+ "config": {
+ "trackingID": "UA-152564043-4",
+ "eventFilteringOption": "whitelistedEvents",
+ "doubleClick": false,
+ "enhancedLinkAttribution": false,
+ "includeSearch": false,
+ "enableServerSideIdentify": false,
+ "serverSideIdentifyEventCategory": "",
+ "serverSideIdentifyEventAction": "",
+ "disableMd5": false,
+ "anonymizeIp": false,
+ "enhancedEcommerce": false,
+ "nonInteraction": false,
+ "sendUserId": true,
+ "contentGroupings": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "dimensions": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "testing01"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "untested110"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "doubleClick": false,
+ "enhancedLinkAttribution": true,
+ "includeSearch": false,
+ "enableServerSideIdentify": false,
+ "serverSideIdentifyEventCategory": "",
+ "serverSideIdentifyEventAction": "",
+ "disableMd5": false,
+ "anonymizeIp": true,
+ "enhancedEcommerce": true,
+ "nonInteraction": false,
+ "sendUserId": false,
+ "useNativeSDK": {
+ "web": true
+ },
+ "trackCategorizedPages": {
+ "web": true
+ },
+ "trackNamedPages": {
+ "web": true
+ },
+ "sampleRate": {
+ "web": "100"
+ },
+ "siteSpeedSampleRate": {
+ "web": "1"
+ },
+ "resetCustomDimensionsOnPage": {
+ "web": [
+ {
+ "resetCustomDimensionsOnPage": ""
+ }
+ ]
+ },
+ "setAllMappedProps": {
+ "web": true
+ },
+ "domain": {
+ "web": "auto"
+ },
+ "optimize": {
+ "web": ""
+ },
+ "useGoogleAmpClientId": {
+ "web": false
+ },
+ "namedTracker": {
+ "web": false
+ },
+ "contentGroupings": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "dimensions": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "blacklistedEvents": [],
+ "whitelistedEvents": []
+ },
+ "result": false,
+ "err": [" must have required property 'trackingID'"]
+ },
+ {
+ "config": {
+ "trackingID": "{{ config.tc || UA-151524043-4 }}",
+ "eventFilteringOption": "whitelistedEvents",
+ "doubleClick": false,
+ "enhancedLinkAttribution": false,
+ "includeSearch": false,
+ "enableServerSideIdentify": false,
+ "serverSideIdentifyEventCategory": "",
+ "serverSideIdentifyEventAction": "",
+ "disableMd5": false,
+ "anonymizeIp": false,
+ "enhancedEcommerce": false,
+ "nonInteraction": false,
+ "sendUserId": false,
+ "contentGroupings": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "dimensions": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "testing01"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "untested110"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "trackingID": "UA-147418433-1",
+ "doubleClick": true,
+ "enhancedLinkAttribution": true,
+ "includeSearch": true,
+ "enableServerSideIdentify": false,
+ "serverSideIdentifyEventCategory": "",
+ "serverSideIdentifyEventAction": "",
+ "anonymizeIp": false,
+ "enhancedEcommerce": false,
+ "nonInteraction": false,
+ "sendUserId": false,
+ "contentGroupings": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "dimensions": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "useNativeSDK": {
+ "web": false
+ },
+ "sampleRate": {
+ "web": "100"
+ },
+ "siteSpeedSampleRate": {
+ "web": "1"
+ },
+ "namedTracker": {
+ "web": false
+ },
+ "disableMd5": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "trackingID": "UA-45731234-5",
+ "doubleClick": true,
+ "enhancedLinkAttribution": true,
+ "includeSearch": false,
+ "enableServerSideIdentify": "disable",
+ "serverSideIdentifyEventCategory": "",
+ "serverSideIdentifyEventAction": "",
+ "disableMd5": false,
+ "anonymizeIp": false,
+ "enhancedEcommerce": false,
+ "nonInteraction": false,
+ "sendUserId": true,
+ "useNativeSDK": {
+ "web": false
+ },
+ "trackCategorizedPages": {
+ "web": true
+ },
+ "trackNamedPages": {
+ "web": true
+ },
+ "sampleRate": {
+ "web": "100"
+ },
+ "siteSpeedSampleRate": {
+ "web": "1"
+ },
+ "resetCustomDimensionsOnPage": {
+ "web": [
+ {
+ "resetCustomDimensionsOnPage": ""
+ }
+ ]
+ },
+ "contentGroupings": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "dimensions": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "setAllMappedProps": {
+ "web": true
+ },
+ "domain": {
+ "web": "auto"
+ },
+ "optimize": {
+ "web": ""
+ },
+ "useGoogleAmpClientId": {
+ "web": false
+ },
+ "namedTracker": {
+ "web": false
+ },
+ "blacklistedEvents": [],
+ "whitelistedEvents": []
+ },
+ "result": false,
+ "err": ["enableServerSideIdentify must be boolean"]
+ },
+ {
+ "config": {
+ "trackingID": "UA-147128492-1",
+ "doubleClick": true,
+ "enhancedLinkAttribution": true,
+ "includeSearch": true,
+ "enableServerSideIdentify": false,
+ "serverSideIdentifyEventCategory": "{{ serverside.config.ct || categoryVal }}",
+ "serverSideIdentifyEventAction": "wqerasfdhjgfvbvbasfdhjgfvbvbjkjjkjigywddhjgfvbvbasfdhjgfvbvbjkjjkjigywdasfdhjgfasfdhjgfvbvbjkjfewddhjgfvbvbasfdhjgfvbvbjkjjkjigywdasfdhjgf",
+ "anonymizeIp": false,
+ "enhancedEcommerce": false,
+ "nonInteraction": false,
+ "sendUserId": false,
+ "useNativeSDK": {
+ "web": false
+ },
+ "contentGroupings": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "dimensions": [
+ {
+ "from": "topic",
+ "to": "contentGroup1"
+ }
+ ],
+ "sampleRate": {
+ "web": "100"
+ },
+ "siteSpeedSampleRate": {
+ "web": "1"
+ },
+ "namedTracker": {
+ "web": false
+ },
+ "disableMd5": true
+ },
+ "result": false,
+ "err": [
+ "serverSideIdentifyEventAction must match pattern \"(^env[.].+)|(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^(.{0,100})$)\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/ga4.json b/test/data/validation/destinations/ga4.json
new file mode 100644
index 000000000..97e4b524c
--- /dev/null
+++ b/test/data/validation/destinations/ga4.json
@@ -0,0 +1,167 @@
+[
+ {
+ "config": {
+ "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
+ "typesOfClient": "gtag",
+ "measurementId": "G-T40PE6KET4",
+ "firebaseAppId": "",
+ "blockPageViewEvent": true,
+ "extendPageViewParams": true,
+ "sendUserId": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": {
+ "web": false
+ },
+ "debugMode": false,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": false,
+ "sendLoginSignup": false,
+ "generateLead": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
+ "typesOfClient": "gtag",
+ "measurementId": "F40RN6STS2",
+ "firebaseAppId": "",
+ "blockPageViewEvent": true,
+ "extendPageViewParams": true,
+ "sendUserId": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": {
+ "web": false
+ },
+ "debugMode": false,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": false,
+ "sendLoginSignup": false,
+ "generateLead": false
+ },
+ "result": false,
+ "err": [
+ "measurementId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(G-.{1,100})$|^$\""
+ ]
+ },
+ {
+ "config": {
+ "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
+ "typesOfClient": "firebase",
+ "measurementId": "G-T40PE6KET4",
+ "firebaseAppId": "2:637908496727:web:a4284b4c99e329d5",
+ "blockPageViewEvent": true,
+ "extendPageViewParams": true,
+ "sendUserId": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": {
+ "web": false
+ },
+ "debugMode": false,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": false,
+ "sendLoginSignup": false,
+ "generateLead": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
+ "measurementId": "G-T40PE6KET4",
+ "blockPageViewEvent": true,
+ "extendPageViewParams": true,
+ "sendUserId": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": {
+ "web": true
+ },
+ "debugMode": true,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": false,
+ "sendLoginSignup": false,
+ "generateLead": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
+ "typesOfClient": "firebase",
+ "measurementId": "G-T40PE6KET4",
+ "blockPageViewEvent": true,
+ "extendPageViewParams": true,
+ "sendUserId": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": {
+ "web": false
+ },
+ "debugMode": false,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": false,
+ "sendLoginSignup": false,
+ "generateLead": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA",
+ "measurementId": "G-T40PE6KET4",
+ "typesOfClient": "firebase",
+ "firebaseAppId": "2:637908496727:web:a4284b4c99e329d5",
+ "blockPageViewEvent": true,
+ "extendPageViewParams": true,
+ "sendUserId": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": {
+ "web": false
+ },
+ "debugMode": false,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": false,
+ "sendLoginSignup": false,
+ "generateLead": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "JjWUIHj4QhG2L7eZDZiXCA",
+ "typesOfClient": "gtag",
+ "blockPageViewEvent": false,
+ "extendPageViewParams": false,
+ "sendUserId": false,
+ "eventFilteringOption": "disable",
+ "measurementId": "G-F40RN6STS2",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "firebaseAppId": "",
+ "useNativeSDK": {
+ "web": false
+ },
+ "debugMode": false,
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] },
+ "enableServerSideIdentify": true,
+ "sendLoginSignup": true,
+ "newOrExistingUserTrait": "firstLogin",
+ "loginSignupMethod": "method",
+ "generateLead": true,
+ "generateLeadValueTrait": "value",
+ "generateLeadCurrencyTrait": "currency"
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/gcs.json b/test/data/validation/destinations/gcs.json
new file mode 100644
index 000000000..86ac2033a
--- /dev/null
+++ b/test/data/validation/destinations/gcs.json
@@ -0,0 +1,46 @@
+[
+ {
+ "config": {
+ "bucketName": "event-logs",
+ "prefix": "sb",
+ "credentials": "{\n \"type\": \"service_account\",\n \"project_id\": \"zendeskapp-52b17\",\n \"private_key_id\": \"5c06b82205fee64749cf031ec7b3ff0bafca8c12\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3OaB3J8FIcsT8\\nUL1e8TruKgZDNOdAbigSteA70Ptzv2N37+LtvRENpNVsEGkP2PPu53er8jlUV9PR\\nrBXpRjS06rFhld6E2wZ2Psp5XAdHTSLTpfIX6Ly4hyn5BlhTlT0ZEEjBqvi4q6TL\\nw369rVJaymzo3U+6E617Ggt2E5E0ZfjYoEXKF2FWf7G79EBen+sVu2YrEz80S/9E\\nhrsiXGbfApLcs/CkL7eEbFmfspW5niCoYKca7AhG0uHQC4yfH9w1GbZtRvsc3dij\\npwL3+iYpUMAwfQkDCbuCjFqgpSxFzlD88Px6q5J6W59y0k0gO6bkouxL6NNPoOME\\nUNGi/noPAgMBAAECggEAGof9LOk0SzsskVlYT+cAFgbpeOeFtDuJ5kpbdGiVU1Q7\\ni91QJQW+HOrT6VMnq3RKajsuhdb20eLqg093Asbi5e71YtXn7qFP5Q/APjotvEzh\\nRfgfFLLjn5gZjfuLDwYACWDlcCnDh0DPhZ6YJntyU+mWQ1KcngCwcQVl8yHv4kAX\\nmE+C8hb12IDEsX1rB09DJSt0FqMFvwJP+PGFbOSefSykbdE6bsJpKgGlHO9FDxtk\\nieZcm2ODqocvbjWko93yWZ/Ozun9zx/59d3DVBd/EEmbzFq/OV+m7ZmcXw5mOZmg\\ntYNvQhPoXHLJQ91DE58z0Hqo5HYjys40zrLnST7A3QKBgQDpDoz8ZL2o7KK9Iyl9\\npm8xXCWxflep1w6gXjksrjsIbmw2+x3mTsmVW6i++w6eea7tGcIVQvuQlCKU+FnR\\n0eHzdrhpWrkIuLegdZ46sguXEUxcU9j6heR3aKE//z/0CIHA4hyvxJtUTf0slErJ\\n09I6xOdgVkWZctnqijSV85VejQKBgQDJQzoszq6Fm/kPNNi4Z2gZlRQq+yievNQV\\nO+4hrcONoHZNyYYHGMYqmbyZu5doltgYyMdDXzMMReJPjCnOE3McA7x5PE9jLiKa\\nMp5lcfUS81RODE+me7OA6rfIUkoNMJxYhV0TSZVBXpAxDoF/r9IZ0tQbiGRXkbhr\\nGyhAYAOSCwKBgQCodcgbOIaPcF1B8gSvunptZ3onjne3YKhF61XQojAxq/+0zleS\\nfijgOV0Ej1zF2JdE83WDAOPuYeWNYOcr71YwMgSiwt01HLA+4EX7j28pR2u24TTa\\nAaZfWdYU+GA1+WAxGEA8HRVaHvV+H8LfmKlBqcrFrBarEIXMLxJLwcKakQKBgFmf\\nlkhdwVm+GyqqXdfANJsvx8tcDLqjW84Y4fIdbveifQwmsYh3f8d4roPHBaWNhq2C\\nuzlFK3ZLqHvD7tnVz2yqPUO/l5qS8NW5tM9376qAsQoQcWexrj26SBzsiA1XmEfT\\nG597JPv3ID64NvKlWOom+E1Kb2SPf5Ayh7ojB3QBAoGAF6Jbeo3X+H12EOrPzVIV\\neUcJO2yWt7XNrGoXgLd7Hb4R9BNl8AAJqaZ9fvpTXCWNNRbaR829wuLecrc+MOJF\\n6N8Cd1s+Mjih4FE8OKVbrtc0IgM+hh2ryGrvRRF9SIDLOrEDxnsqLOHDld8FEIfl\\naOoM4S4ZRMyf2VvgqH2Lnsw=\\n-----END PRIVATE KEY-----\\n\",\n \"client_email\": \"rudderstack@zendeskapp-52b17.iam.gserviceaccount.com\",\n \"client_id\": \"101630212963057039580\",\n \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n \"token_uri\": \"https://oauth2.googleapis.com/token\",\n \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/rudderstack%40zendeskapp-52b17.iam.gserviceaccount.com\"\n}",
+ "testConnection": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "rudderstack-test-1",
+ "prefix": "rudder",
+ "credentials": ""
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "Active Campaign NHN",
+ "prefix": "",
+ "credentials": "",
+ "testConnection": false,
+ "testConnectionTS": 1621944688891
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "fasdfsa",
+ "credentials": "{\nsadfas:\"asdf\"\n}"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "",
+ "credentials": "{\nsadfas:\"asdf\"\n}"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/gcs_datalake_test.json b/test/data/validation/destinations/gcs_datalake.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/gcs_datalake_test.json
rename to test/data/validation/destinations/gcs_datalake.json
diff --git a/src/validations/__tests__/validation_test_data/google_ads_offline_conversions_test.json b/test/data/validation/destinations/google_ads_offline_conversions.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/google_ads_offline_conversions_test.json
rename to test/data/validation/destinations/google_ads_offline_conversions.json
diff --git a/src/validations/__tests__/validation_test_data/google_adwords_offline_conversions_test.json b/test/data/validation/destinations/google_adwords_offline_conversions.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/google_adwords_offline_conversions_test.json
rename to test/data/validation/destinations/google_adwords_offline_conversions.json
diff --git a/test/data/validation/destinations/google_cloud_function.json b/test/data/validation/destinations/google_cloud_function.json
new file mode 100644
index 000000000..bd64dc495
--- /dev/null
+++ b/test/data/validation/destinations/google_cloud_function.json
@@ -0,0 +1,22 @@
+[
+ {
+ "config": {
+ "triggerType": "Http",
+ "googleCloudFunctionUrl": "http://sample.com/url",
+ "apiKeyId": "1d6583b196d34de28a3g19ahadde4b0z"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "triggerType": "Http",
+ "googleCloudFunctionUrl": "htp://sample.com/url",
+ "apiKeyId": "1d6583b196d34de28a3g19ahadde4b0z"
+ },
+ "result": false,
+ "err": [
+ "googleCloudFunctionUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\"",
+ " must match \"then\" schema"
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/googleads.json b/test/data/validation/destinations/googleads.json
new file mode 100644
index 000000000..fe1ac21da
--- /dev/null
+++ b/test/data/validation/destinations/googleads.json
@@ -0,0 +1,209 @@
+[
+ {
+ "config": {
+ "conversionID": "AW-12321",
+ "eventFilteringOption": "whitelistedEvents",
+ "defaultPageConversion": "poiiopqwewqwwqewq",
+ "sendPageView": true,
+ "conversionLinker": true,
+ "disableAdPersonalization": true,
+ "whitelistedEvents": [
+ {
+ "eventName": "login page"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "pageLoadConversions": [
+ {
+ "conversionLabel": "ofwinqeoqwefnoewqo9",
+ "name": "test"
+ }
+ ],
+ "clickEventConversions": [
+ {
+ "conversionLabel": "1qinqwqoqewfnoewqo9",
+ "name": "clickTest"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "dynamicRemarketing": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Sales"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "conversionID": "AW-12321",
+ "eventFilteringOption": "whitelistedEvents",
+ "defaultPageConversion": "poiiopqwewqwwqewq",
+ "sendPageView": true,
+ "conversionLinker": true,
+ "disableAdPersonalization": true,
+ "whitelistedEvents": [
+ {
+ "eventName": "login page"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "pageLoadConversions": [
+ {
+ "conversionLabel": "ofwinqeoqwefnoewqo9",
+ "name": "test"
+ },
+ {
+ "conversionLabel": "idwhcbiwdfbciwdfw",
+ "name": "entry"
+ }
+ ],
+ "clickEventConversions": [
+ {
+ "conversionLabel": "1qinqwqoqewfnoewqo9",
+ "name": "clickTest"
+ },
+ {
+ "conversionLabel": "qwertyasagehrstshregs",
+ "name": "clickedPrev"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "dynamicRemarketing": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Business Tool"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "conversionID": "AW-114432",
+ "useNativeSDK": {
+ "web": true
+ },
+ "dynamicRemarketing": {
+ "web": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "eventFilteringOption": "whitelistedEvents",
+ "defaultPageConversion": "poiiopqwewqwwqewq",
+ "sendPageView": true,
+ "conversionLinker": true,
+ "disableAdPersonalization": true,
+ "whitelistedEvents": [
+ {
+ "eventName": "login page"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "pageLoadConversions": [
+ {
+ "conversionLabel": "ofwinqeoqwefnoewqo9",
+ "name": "test"
+ }
+ ],
+ "clickEventConversions": [
+ {
+ "conversionLabel": "1qinqwqoqewfnoewqo9",
+ "name": "clickTest"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "dynamicRemarketing": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Sales"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'conversionID'"]
+ },
+ {
+ "config": {
+ "conversionID": "AW-12321",
+ "eventFilteringOption": "whitelistedEvents",
+ "defaultPageConversion": "poiiopqwewqwwqewq",
+ "sendPageView": {
+ "sendPageView": true
+ },
+ "conversionLinker": true,
+ "disableAdPersonalization": true,
+ "whitelistedEvents": [
+ {
+ "eventName": "login page"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "pageLoadConversions": [
+ {
+ "conversionLabel": "ofwinqeoqwefnoewqo9",
+ "name": "test"
+ }
+ ],
+ "clickEventConversions": [
+ {
+ "conversionLabel": "1qinqwqoqewfnoewqo9",
+ "name": "clickTest"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "dynamicRemarketing": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["sendPageView must be boolean"]
+ }
+]
diff --git a/test/data/validation/destinations/gtm.json b/test/data/validation/destinations/gtm.json
new file mode 100644
index 000000000..80152fa2d
--- /dev/null
+++ b/test/data/validation/destinations/gtm.json
@@ -0,0 +1,77 @@
+[
+ {
+ "config": {
+ "containerID": "GTM-ADDA",
+ "serverUrl": "https://gtm.rudder.com",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "registration"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": []
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "serverUrl": "https://gtm.rudder.com",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "registration"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": []
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'containerID'"]
+ },
+ {
+ "config": {
+ "containerID": "GTM-ADDA",
+ "serverUrl": "badurl",
+ "eventFilteringOption": "whitelistedEvents",
+ "whitelistedEvents": [
+ {
+ "eventName": "registration"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "oneTrustCookieCategories": {
+ "web": []
+ }
+ },
+ "result": false,
+ "err": [
+ "serverUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\""
+ ]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/hs_test.json b/test/data/validation/destinations/hs.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/hs_test.json
rename to test/data/validation/destinations/hs.json
diff --git a/test/data/validation/destinations/iterable.json b/test/data/validation/destinations/iterable.json
new file mode 100644
index 000000000..c1692ac1b
--- /dev/null
+++ b/test/data/validation/destinations/iterable.json
@@ -0,0 +1,93 @@
+[
+ {
+ "config": {
+ "apiKey": "73983282843839749873",
+ "mapToSingleEvent": true,
+ "trackAllPages": false,
+ "trackCategorisedPages": true,
+ "trackNamedPages": true,
+ "useNativeSDK": {
+ "web": true
+ },
+ "initialisationIdentifier": {
+ "web": "email"
+ },
+ "getInAppEventMapping": {
+ "web": [
+ {
+ "eventName": "sale notification"
+ },
+ {
+ "eventName": "festival discount"
+ }
+ ]
+ },
+ "purchaseEventMapping": {
+ "web": [
+ {
+ "eventName": "Checkout Done"
+ }
+ ]
+ },
+ "sendTrackForInapp": {
+ "web": true
+ },
+ "animationDuration": {
+ "web": "200"
+ },
+ "displayInterval": {
+ "web": "2500"
+ },
+ "onOpenScreenReaderMessage": {
+ "web": ""
+ },
+ "onOpenNodeToTakeFocus": {
+ "web": ""
+ },
+ "packageName": {
+ "web": "my-package-test"
+ },
+ "rightOffset": {
+ "web": "15"
+ },
+ "topOffset": {
+ "web": "11"
+ },
+ "bottomOffset": {
+ "web": "24%"
+ },
+ "handleLinks": {
+ "web": "open-all-new-tab"
+ },
+ "closeButtonColor": {
+ "web": "blue"
+ },
+ "closeButtonSize": {
+ "web": ""
+ },
+ "closeButtonColorTopOffset": {
+ "web": "3%"
+ },
+ "closeButtonColorSideOffset": {
+ "web": "2%"
+ },
+ "iconPath": {
+ "web": ""
+ },
+ "isRequiredToDismissMessage": {
+ "web": true
+ },
+ "closeButtonPosition": {
+ "web": ""
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/lambda.json b/test/data/validation/destinations/lambda.json
new file mode 100644
index 000000000..25c45d146
--- /dev/null
+++ b/test/data/validation/destinations/lambda.json
@@ -0,0 +1,53 @@
+[
+ {
+ "config": {
+ "accessKeyId": "bSjsdGYsOo9sjw23Shj",
+ "accessKey": "1d6583b196d34de28a3g19ahadde4b0z",
+ "roleBasedAuth": false,
+ "region": "us-east-1"
+ },
+ "result": false,
+ "err": [" must have required property 'lambda'"]
+ },
+ {
+ "config": {
+ "accessKeyId": "bSjsdGYsOo9sjw23-_(Shj",
+ "accessKey": "1d6583b196d34de28a3g19ahadde4b0z",
+ "roleBasedAuth": false,
+ "region": "us-east-1",
+ "lambda": "myFunction"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "accessKeyId": "bSjsdGYsOo9sjw23-_(Shj",
+ "accessKey": "1d6583b196d34de28a3g19ahadde4b0z",
+ "roleBasedAuth": false,
+ "region": "ufgrgrt",
+ "lambda": "myFunction"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "iamRoleARN": "arn:aws:iam::123456789012:role/LambdaAccess",
+ "roleBasedAuth": true,
+ "region": "us-east-2",
+ "lambda": "myFunction",
+ "maxBatchSize": "50"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "iamRoleARN": "arn:aws:iam::123456789012:role/LambdaAccess",
+ "roleBasedAuth": true,
+ "region": "us-east-2",
+ "lambda": "myFunction",
+ "maxBatchSize": "vsrbsr"
+ },
+ "result": false,
+ "err": ["maxBatchSize must match pattern \"^$|^[1-9]\\d*$\""]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/livechat_test.json b/test/data/validation/destinations/livechat.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/livechat_test.json
rename to test/data/validation/destinations/livechat.json
diff --git a/src/validations/__tests__/validation_test_data/mailjet.test.json b/test/data/validation/destinations/mailjet.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/mailjet.test.json
rename to test/data/validation/destinations/mailjet.json
diff --git a/src/validations/__tests__/validation_test_data/mailjet_test.json b/test/data/validation/destinations/mailjet.test.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/mailjet_test.json
rename to test/data/validation/destinations/mailjet.test.json
diff --git a/test/data/validation/destinations/marketo_static_list.json b/test/data/validation/destinations/marketo_static_list.json
new file mode 100644
index 000000000..b8e98946d
--- /dev/null
+++ b/test/data/validation/destinations/marketo_static_list.json
@@ -0,0 +1,32 @@
+[
+ {
+ "config": {
+ "clientId": "893yh2ef823yf0",
+ "clientSecret": "238923hr2o08f",
+ "accountId": "di0e298dy23r982f",
+ "staticListId": "9031"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "clientId": "32313124",
+ "clientSecret": "113442",
+ "accountId": "aaa",
+ "staticListId": "9031"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "clientId": "893yh2ef823yf0",
+ "clientSecret": "238923hr2o08f",
+ "accountId": "",
+ "staticListId": "9031"
+ },
+ "result": false,
+ "err": [
+ "accountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/matomo.json b/test/data/validation/destinations/matomo.json
new file mode 100644
index 000000000..dbdf3e616
--- /dev/null
+++ b/test/data/validation/destinations/matomo.json
@@ -0,0 +1,187 @@
+[
+ {
+ "config": {
+ "siteId": "1",
+ "serverUrl": "com.yara.fw.stage",
+ "eventsMapToGoalId": [
+ {
+ "from": "Set GoalId",
+ "to": "123"
+ }
+ ],
+ "eventsToStandard": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ],
+ "trackAllContentImpressions": true,
+ "trackVisibleContentImpressions": true,
+ "checkOnScroll": true,
+ "timeIntervalInMs": "15",
+ "logAllContentBlocksOnPage": true,
+ "enableHeartBeatTimer": true,
+ "activeTimeInseconds": "25",
+ "enableLinkTracking": true,
+ "disablePerformanceTracking": true,
+ "enableCrossDomainLinking": true,
+ "setCrossDomainLinkingTimeout": true,
+ "timeout": "10",
+ "getCrossDomainLinkingUrlParameter": true,
+ "disableBrowserFeatureDetection": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "siteId": "1",
+ "serverUrl": "com.yara.fw.stage",
+ "eventsMapToGoalId": [
+ {
+ "from": "Set GoalId",
+ "to": "123"
+ }
+ ],
+ "eventsToStandard": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ],
+ "trackAllContentImpressions": true,
+ "trackVisibleContentImpressions": true,
+ "checkOnScroll": false,
+ "timeIntervalInMs": "15b",
+ "logAllContentBlocksOnPage": true,
+ "enableHeartBeatTimer": true,
+ "activeTimeInseconds": "25",
+ "enableLinkTracking": true,
+ "disablePerformanceTracking": true,
+ "enableCrossDomainLinking": true,
+ "setCrossDomainLinkingTimeout": true,
+ "timeout": "10",
+ "getCrossDomainLinkingUrlParameter": true,
+ "disableBrowserFeatureDetection": true
+ },
+ "result": false,
+ "err": [
+ "timeIntervalInMs must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
+ ]
+ },
+ {
+ "config": {
+ "siteId": "3",
+ "serverUrl": "com.yara.fw.stage",
+ "eventsMapToGoalId": [
+ {
+ "from": "Set GoalId",
+ "to": "123"
+ }
+ ],
+ "eventsToStandard": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ },
+ {
+ "from": "Test",
+ "to": "Track Link"
+ }
+ ],
+ "trackAllContentImpressions": true,
+ "trackVisibleContentImpressions": true,
+ "checkOnScroll": true,
+ "timeIntervalInMs": "15",
+ "logAllContentBlocksOnPage": true,
+ "enableHeartBeatTimer": true,
+ "activeTimeInseconds": "",
+ "enableLinkTracking": true,
+ "disablePerformanceTracking": true,
+ "enableCrossDomainLinking": true,
+ "setCrossDomainLinkingTimeout": true,
+ "timeout": "10",
+ "getCrossDomainLinkingUrlParameter": true,
+ "disableBrowserFeatureDetection": true
+ },
+ "result": false,
+ "err": [
+ "activeTimeInseconds must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""
+ ]
+ },
+ {
+ "config": {
+ "siteId": "3",
+ "serverUrl": "com.yara.fw.stage",
+ "eventsMapToGoalId": [
+ {
+ "from": "Set GoalId",
+ "to": "123"
+ }
+ ],
+ "eventsToStandard": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ },
+ {
+ "from": "Test",
+ "to": "Track Link"
+ }
+ ],
+ "trackAllContentImpressions": true,
+ "trackVisibleContentImpressions": true,
+ "checkOnScroll": true,
+ "timeIntervalInMs": "15",
+ "logAllContentBlocksOnPage": true,
+ "enableHeartBeatTimer": true,
+ "activeTimeInseconds": "5",
+ "enableLinkTracking": true,
+ "disablePerformanceTracking": false,
+ "enableCrossDomainLinking": false,
+ "setCrossDomainLinkingTimeout": true,
+ "timeout": "",
+ "getCrossDomainLinkingUrlParameter": false,
+ "disableBrowserFeatureDetection": false
+ },
+ "result": false,
+ "err": ["timeout must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""]
+ },
+ {
+ "config": {
+ "serverUrl": "com.yara.fw.stage",
+ "eventsMapToGoalId": [],
+ "eventsToStandard": [],
+ "trackAllContentImpressions": false,
+ "trackVisibleContentImpressions": false,
+ "logAllContentBlocksOnPage": false,
+ "enableHeartBeatTimer": false,
+ "enableLinkTracking": false,
+ "disablePerformanceTracking": false,
+ "enableCrossDomainLinking": false,
+ "setCrossDomainLinkingTimeout": false,
+ "getCrossDomainLinkingUrlParameter": false,
+ "disableBrowserFeatureDetection": false
+ },
+ "result": false,
+ "err": [" must have required property 'siteId'"]
+ },
+ {
+ "config": {
+ "siteId": "34b",
+ "serverUrl": "com.yara.fw.stage",
+ "eventsMapToGoalId": [],
+ "eventsToStandard": [],
+ "trackAllContentImpressions": true,
+ "trackVisibleContentImpressions": false,
+ "logAllContentBlocksOnPage": false,
+ "enableHeartBeatTimer": false,
+ "enableLinkTracking": false,
+ "disablePerformanceTracking": false,
+ "enableCrossDomainLinking": false,
+ "setCrossDomainLinkingTimeout": false,
+ "getCrossDomainLinkingUrlParameter": false,
+ "disableBrowserFeatureDetection": false
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/mautic.json b/test/data/validation/destinations/mautic.json
new file mode 100644
index 000000000..6b50db0fc
--- /dev/null
+++ b/test/data/validation/destinations/mautic.json
@@ -0,0 +1,55 @@
+[
+ {
+ "config": {
+ "userName": "abc@work.com",
+ "password": "1234yui",
+ "subDomainName": "work",
+ "lookUpField": "email"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "userName": "abc@test.com",
+ "password": "1234yui",
+ "subDomainName": "work",
+ "lookUpField": ""
+ },
+ "result": false,
+ "err": [
+ "lookUpField must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "userName": "abc@work.com",
+ "password": "",
+ "subDomainName": "work",
+ "lookUpField": "email"
+ },
+ "result": false,
+ "err": ["password must match pattern \"(^env[.].+)|.+\""]
+ },
+ {
+ "config": {
+ "userName": "abc@work.com",
+ "password": "1234yui",
+ "subDomainName": "",
+ "lookUpField": "email"
+ },
+ "result": false,
+ "err": [
+ "subDomainName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "userName": "",
+ "password": "1234yui",
+ "subDomainName": "work",
+ "lookUpField": "email"
+ },
+ "result": false,
+ "err": ["userName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ }
+]
diff --git a/test/data/validation/destinations/microsoft_clarity.json b/test/data/validation/destinations/microsoft_clarity.json
new file mode 100644
index 000000000..77c0373cc
--- /dev/null
+++ b/test/data/validation/destinations/microsoft_clarity.json
@@ -0,0 +1,60 @@
+[
+ {
+ "config": {
+ "cookieConsent": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'projectId'"]
+ },
+ {
+ "config": {
+ "projectId": "",
+ "cookieConsent": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "projectId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "projectId": "ej81fqgqfc",
+ "cookieConsent": "true",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": ["cookieConsent must be boolean"]
+ }
+]
diff --git a/test/data/validation/destinations/monday.json b/test/data/validation/destinations/monday.json
new file mode 100644
index 000000000..0a995412f
--- /dev/null
+++ b/test/data/validation/destinations/monday.json
@@ -0,0 +1,71 @@
+[
+ {
+ "config": {
+ "apiToken": "",
+ "boardId": "483949233",
+ "groupTitle": "",
+ "columnToPropertyMapping": [
+ {
+ "from": "Work Status",
+ "to": "status"
+ }
+ ],
+ "whitelistedEvents": [{ "eventName": "" }]
+ },
+ "result": false,
+ "err": ["apiToken must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$\""]
+ },
+ {
+ "config": {
+ "apiToken": "eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
+ "boardId": "",
+ "groupTitle": "",
+ "columnToPropertyMapping": [
+ {
+ "from": "Work Status",
+ "to": "status"
+ }
+ ],
+ "whitelistedEvents": [{ "eventName": "Product added to cart" }]
+ },
+ "result": false,
+ "err": ["boardId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiToken": "eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
+ "boardId": "323826323",
+ "groupTitle": false,
+ "columnToPropertyMapping": [
+ {
+ "from": "Work Status",
+ "to": "status"
+ }
+ ],
+ "whitelistedEvents": [
+ { "eventName": "Product purchased" },
+ { "eventName": "Product added to cart" }
+ ]
+ },
+ "result": false,
+ "err": ["groupTitle must be string"]
+ },
+ {
+ "config": {
+ "apiToken": "eywwakzdjiksjhriherniSFsjhnskdojsSDFhsdns.sSRSSREWdnfnsjshfjsjskshfiskskdS__Fskilhih",
+ "boardId": "323826323",
+ "groupTitle": "Active deals",
+ "columnToPropertyMapping": [
+ {
+ "from": "Work Status",
+ "to": "status"
+ }
+ ],
+ "whitelistedEvents": [
+ { "eventName": "Product purchased" },
+ { "eventName": "Product added to cart" }
+ ]
+ },
+ "result": true
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/mouseflow_test.json b/test/data/validation/destinations/mouseflow.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/mouseflow_test.json
rename to test/data/validation/destinations/mouseflow.json
diff --git a/test/data/validation/destinations/mp.json b/test/data/validation/destinations/mp.json
new file mode 100644
index 000000000..d88f4be8a
--- /dev/null
+++ b/test/data/validation/destinations/mp.json
@@ -0,0 +1,171 @@
+[
+ {
+ "config": {
+ "token": "2de18c6hf6v45201ab43d2344b0c128x",
+ "apiSecret": "1c078994c2141897ffaf71c36a75v227",
+ "dataResidency": "us",
+ "people": false,
+ "setAllTraitsByDefault": false,
+ "consolidatedPageCalls": true,
+ "trackCategorizedPages": false,
+ "trackNamedPages": false,
+ "sourceName": "AWS",
+ "crossSubdomainCookie": true,
+ "persistence": "cookie",
+ "secureCookie": true,
+ "superProperties": [
+ {
+ "property": "super001"
+ }
+ ],
+ "peopleProperties": [
+ {
+ "property": "maidenName"
+ }
+ ],
+ "eventIncrements": [
+ {
+ "property": "triggerName"
+ }
+ ],
+ "propIncrements": [
+ {
+ "property": "extraProps"
+ }
+ ],
+ "groupKeySettings": [
+ {
+ "groupKey": "gg101"
+ }
+ ],
+ "useNativeSDK": {
+ "android": false
+ },
+ "blacklistedEvents": [
+ {
+ "eventName": "black"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": "white"
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "8ac88f162ddfefd91156565c431611fb",
+ "dataResidency": "us",
+ "groupKeySettings": [
+ {
+ "groupKey": "admissions"
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'token'"]
+ },
+ {
+ "config": {
+ "token": "2de18c6hf6v45201ab43d2344b0c128x",
+ "dataResidency": "us",
+ "people": false,
+ "setAllTraitsByDefault": false,
+ "consolidatedPageCalls": true,
+ "trackCategorizedPages": false,
+ "trackNamedPages": false,
+ "crossSubdomainCookie": false,
+ "persistence": "localStorage",
+ "secureCookie": false,
+ "eventFilteringOption": "disable",
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "token": "2de18c6hf6v45201ab43d2344b0c128x",
+ "dataResidency": "us",
+ "people": true,
+ "trackNamedPages": false,
+ "crossSubdomainCookie": false,
+ "persistence": "localStorage",
+ "secureCookie": false,
+ "eventFilteringOption": "disable",
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "token": "2de18c6hf6v45201ab43d2344b0c128x",
+ "dataResidency": "us",
+ "people": false,
+ "setAllTraitsByDefault": false,
+ "consolidatedPageCalls": false,
+ "trackCategorizedPages": false,
+ "trackNamedPages": {
+ "name": true
+ },
+ "crossSubdomainCookie": false,
+ "persistence": "localStorage",
+ "secureCookie": false,
+ "eventFilteringOption": "disable",
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["trackNamedPages must be boolean"]
+ },
+ {
+ "config": {
+ "token": "2de18c6hf6v45201ab43d2344b0c128x",
+ "dataResidency": "us",
+ "people": false,
+ "setAllTraitsByDefault": false,
+ "consolidatedPageCalls": false,
+ "trackCategorizedPages": false,
+ "trackNamedPages": false,
+ "sourceName": "qflkmnzhahdgfhdhfe9he9wfhwe9fhweqdwgygqdwiqflkmnzhahdgfhdhfe9he9wfhwe9fhweqdwgygqdwiqflkmnzhahdgfhdhfe9he9wfhwe9fhweqdwgygqdwi",
+ "crossSubdomainCookie": false,
+ "persistence": "localStorage",
+ "secureCookie": false,
+ "eventFilteringOption": "disable",
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": [
+ "sourceName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/mssql.json b/test/data/validation/destinations/mssql.json
new file mode 100644
index 000000000..4800b22f4
--- /dev/null
+++ b/test/data/validation/destinations/mssql.json
@@ -0,0 +1,276 @@
+[
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test-bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": true,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "sasToken": "test-azure-sas-token",
+ "useSASTokens": false,
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test-container",
+ "accountName": "test-account-name",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ " must have required property 'accountKey'",
+ " must have required property 'useSASTokens'",
+ " must have required property 'sasToken'",
+ " must match a schema in anyOf",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "useRudderStorage": false,
+ "sslMode": "disable",
+ "bucketProvider": "MINIO",
+ "syncFrequency": "30",
+ "bucketName": "test-bucket",
+ "accessKeyID": "test-access-key-id",
+ "secretAccessKey": "test-secret-access-key",
+ "endPoint": "https:test.com",
+ "useSSL": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "bucketProvider": "S3",
+ "useRudderStorage": false,
+ "syncFrequency": "30",
+ "bucketName": "ab..ab",
+ "accessKeyID": "test-access-key-id",
+ "accessKey": "test-access-key"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "GCS",
+ "bucketName": "test..bucket",
+ "endPoint": "",
+ "useSSL": true,
+ "credentials": "{}",
+ "excludeWindow": {
+ "excludeWindowStartTime": "",
+ "excludeWindowEndTime": ""
+ },
+ "syncStartAt": "16:30"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "sslMode": "disable",
+ "syncFrequency": "30",
+ "useRudderStorage": false,
+ "bucketProvider": "AZURE_BLOB",
+ "containerName": "test--container",
+ "accountName": "test-account-name",
+ "accountKey": "test-azure-account-key",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"",
+ " must match \"then\" schema"
+ ]
+ },
+ {
+ "config": {
+ "host": "test-host",
+ "database": "test-database",
+ "user": "test-user",
+ "password": "test-password",
+ "port": "0000",
+ "useRudderStorage": false,
+ "sslMode": "disable",
+ "bucketProvider": "MINIO",
+ "syncFrequency": "30",
+ "bucketName": "1.2.3.4",
+ "accessKeyID": "test-access-key-id",
+ "secretAccessKey": "test-secret-access-key",
+ "endPoint": "https:test.com",
+ "useSSL": true
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"",
+ " must match \"then\" schema"
+ ]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/new_relic_test.json b/test/data/validation/destinations/new_relic.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/new_relic_test.json
rename to test/data/validation/destinations/new_relic.json
diff --git a/test/data/validation/destinations/one_signal.json b/test/data/validation/destinations/one_signal.json
new file mode 100644
index 000000000..4d9a122e0
--- /dev/null
+++ b/test/data/validation/destinations/one_signal.json
@@ -0,0 +1,34 @@
+[
+ {
+ "config": {
+ "appId": "",
+ "emailDeviceType": false,
+ "smsDeviceType": false,
+ "eventAsTags": false,
+ "allowedProperties": [{ "propertyName": "" }]
+ },
+ "result": false,
+ "err": ["appId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "appId": "7acc2c99-818c-4a28-b98e-6cd8a994da65",
+ "emailDeviceType": false,
+ "smsDeviceType": false,
+ "eventAsTags": false,
+ "allowedProperties": [{ "propertyName": "" }]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "appId": "7acc2c99-818c-4a28-b98e-6cd8a994da65",
+ "emailDeviceType": "false",
+ "smsDeviceType": false,
+ "eventAsTags": false,
+ "allowedProperties": [{ "propertyName": "" }]
+ },
+ "result": false,
+ "err": ["emailDeviceType must be boolean"]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/pagerduty_test.json b/test/data/validation/destinations/pagerduty.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/pagerduty_test.json
rename to test/data/validation/destinations/pagerduty.json
diff --git a/test/data/validation/destinations/persistIq.json b/test/data/validation/destinations/persistIq.json
new file mode 100644
index 000000000..885d80f80
--- /dev/null
+++ b/test/data/validation/destinations/persistIq.json
@@ -0,0 +1,27 @@
+[
+ {
+ "config": {
+ "apiKey": "893yh2ef823yf0",
+ "persistIqAttributesMapping": [
+ {
+ "from": "useroccupation",
+ "to": "occupation"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "",
+ "persistIqAttributesMapping": [
+ {
+ "from": "useroccupation",
+ "to": "occupation"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/personalize_test.json b/test/data/validation/destinations/personalize.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/personalize_test.json
rename to test/data/validation/destinations/personalize.json
diff --git a/test/data/validation/destinations/pinterest_tag.json b/test/data/validation/destinations/pinterest_tag.json
new file mode 100644
index 000000000..1bcf1d251
--- /dev/null
+++ b/test/data/validation/destinations/pinterest_tag.json
@@ -0,0 +1,136 @@
+[
+ {
+ "config": {
+ "tagId": "123456789",
+ "advertiserId": "429047995",
+ "appId": "429047995",
+ "enhancedMatch": true,
+ "sendingUnHashedData": true,
+ "enableDeduplication": true,
+ "deduplicationKey": "messageId",
+ "customProperties": [
+ {
+ "properties": "customProperty.customValue"
+ },
+ {
+ "properties": "randomValue"
+ }
+ ],
+ "eventsMapping": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "tagId": "123456789abc",
+ "advertiserId": "429047995",
+ "appId": "429047995",
+ "sendingUnHashedData": false,
+ "enableDeduplication": true,
+ "deduplicationKey": "messageId",
+ "enhancedMatch": true,
+ "customProperties": [
+ {
+ "properties": "presentclass"
+ },
+ {
+ "properties": "presentgrade"
+ }
+ ],
+ "eventsMapping": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["tagId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\""]
+ },
+ {
+ "config": {
+ "tagId": "123456789",
+ "advertiserId": "429047995abc",
+ "appId": "429047995",
+ "sendingUnHashedData": false,
+ "enhancedMatch": true,
+ "enableDeduplication": false,
+ "customProperties": [
+ {
+ "properties": "presentclass"
+ },
+ {
+ "properties": "presentgrade"
+ }
+ ],
+ "eventsMapping": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["advertiserId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\""]
+ },
+ {
+ "config": {
+ "tagId": "123456789",
+ "advertiserId": "429047995",
+ "appId": "429047995abc",
+ "sendingUnHashedData": true,
+ "enableDeduplication": false,
+ "enhancedMatch": false,
+ "customProperties": [
+ {
+ "properties": "presentclass"
+ },
+ {
+ "properties": "presentgrade"
+ }
+ ],
+ "eventsMapping": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["appId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\""]
+ },
+ {
+ "config": {
+ "tagId": "123456789",
+ "advertiserId": "429047995",
+ "appId": "429047995",
+ "sendingUnHashedData": true,
+ "enableDeduplication": true,
+ "deduplicationKey": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "enhancedMatch": false,
+ "customProperties": [
+ {
+ "properties": "presentclass"
+ },
+ {
+ "properties": "presentgrade"
+ }
+ ],
+ "eventsMapping": [
+ {
+ "from": "Track Ping",
+ "to": "ping"
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "deduplicationKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/pipedream.json b/test/data/validation/destinations/pipedream.json
new file mode 100644
index 000000000..bf32f989c
--- /dev/null
+++ b/test/data/validation/destinations/pipedream.json
@@ -0,0 +1,90 @@
+[
+ {
+ "config": {
+ "pipedreamUrl": "http://sample.com/url",
+ "pipedreamMethod": "GET",
+ "headers": [
+ {
+ "from": "a",
+ "to": "a"
+ },
+ {
+ "from": "b",
+ "to": "b"
+ },
+ {
+ "from": "c",
+ "to": "c"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pipedreamMethod": "POST",
+ "headers": [
+ {
+ "from": "a",
+ "to": "a"
+ },
+ {
+ "from": "b",
+ "to": "b"
+ },
+ {
+ "from": "c",
+ "to": "c"
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'pipedreamUrl'"]
+ },
+ {
+ "config": {
+ "pipedreamUrl": "https://pipedream.site/cd6e1235-142d-6355-155e-feee12cb3c49",
+ "pipedreamMethod": "POST"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pipedreamUrl": "http://sample.com/api/hooks/url",
+ "pipedreamMethod": "POST",
+ "headers": [
+ {
+ "from": "Authorization",
+ "to": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCINiIsInR5cCI6IkpXVCkYTJkMDA4ZTcwMGNiIsInR5cCI6IkpXVCXIiOiI2MTE1NTJmYWYyNGE2ODAwMTJjYjhiNzQiLCJvcmciOiI2MGRjN2M2MWU5ZDliM2MzOTVjZWI5ZGIiLCJvcmdOYW1lIjoibmVpZ2hib3IiLCJ1c2VyVHlwZSI6Im1hY2hpbmUiLCJwb2QiOiJwcm9kMSIsInJvbGVzIjpbIm9yZy5hZG1pbiIsIm9yZy5ob29rcyIsIm9yZy5wZXJtaXNzaW9uIiwib3JnLnVzZXIiXSwiYXVkIjoidXJuOmNvbnN1bWVyIiwiaXNzIjoidXJuOmFwaSIsInN1YiI6IjYxMTU1MmZhZjI0YTY4MDAxMmNiOGI3NCJ9.CwzS9X8bQqC3lNt5WlxbHosJZ8sL-ogUTNh_ORBNIIw"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pipedreamUrl": "ftp://bridgettl.com/wbh",
+ "pipedreamMethod": "GET",
+ "headers": [
+ {
+ "from": "isSecure",
+ "to": "secure010qpo12"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pipedreamUrl": "http://test.ec-example.example.com",
+ "pipedreamMethod": "POST",
+ "headers": [
+ {
+ "from": "isSecure",
+ "to": "101"
+ }
+ ]
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/podsights.json b/test/data/validation/destinations/podsights.json
new file mode 100644
index 000000000..f0f99cc73
--- /dev/null
+++ b/test/data/validation/destinations/podsights.json
@@ -0,0 +1,66 @@
+[
+ {
+ "config": {
+ "pixelId": "",
+ "eventsToQPEvents": [
+ {
+ "from": "Order Completed",
+ "to": "Purchase"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }]
+ },
+ "result": false,
+ "err": ["pixelId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "eventsToQPEvents": [
+ {
+ "from": "Order Completed",
+ "to": "Purchase"
+ }
+ ],
+ "enableAliasCall": false,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }]
+ },
+ "result": false,
+ "err": [" must have required property 'pixelId'"]
+ },
+ {
+ "config": {
+ "pixelId": 1234,
+ "eventsToQPEvents": [
+ {
+ "from": "Order Completed",
+ "to": "Purchase"
+ }
+ ],
+ "enableAliasCall": true,
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }]
+ },
+ "result": false,
+ "err": ["pixelId must be string"]
+ },
+ {
+ "config": {
+ "pixelId": "qwerty1234qwerty",
+ "eventsToQPEvents": [
+ {
+ "from": "Order Completed",
+ "to": "Purchase"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }]
+ },
+ "result": true
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/postgres_test.json b/test/data/validation/destinations/postgres.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/postgres_test.json
rename to test/data/validation/destinations/postgres.json
diff --git a/src/validations/__tests__/validation_test_data/qualaroo_test.json b/test/data/validation/destinations/qualaroo.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/qualaroo_test.json
rename to test/data/validation/destinations/qualaroo.json
diff --git a/src/validations/__tests__/validation_test_data/quora_pixel_test.json b/test/data/validation/destinations/quora_pixel.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/quora_pixel_test.json
rename to test/data/validation/destinations/quora_pixel.json
diff --git a/src/validations/__tests__/validation_test_data/redis_test.json b/test/data/validation/destinations/redis.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/redis_test.json
rename to test/data/validation/destinations/redis.json
diff --git a/test/data/validation/destinations/refiner.json b/test/data/validation/destinations/refiner.json
new file mode 100644
index 000000000..3b5822647
--- /dev/null
+++ b/test/data/validation/destinations/refiner.json
@@ -0,0 +1,96 @@
+[
+ {
+ "config": {
+ "apiKey": "d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v",
+ "webClientApiKey": "d2bnp1ubi9x6zq1p845487293848yx2hf5q1k3v",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "webClientApiKey": "d2bnp1ubi9x6zq1p845487293848yx2hf5q1k3v",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "",
+ "webClientApiKey": "d2bnp1ubi9x6zq1p845487293848yx2hf5q1k3v",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiKey": "d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v",
+ "webClientApiKey": "",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [
+ "webClientApiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "apiKey": "d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": [" must have required property 'webClientApiKey'"]
+ }
+]
diff --git a/test/data/validation/destinations/revenue_cat.json b/test/data/validation/destinations/revenue_cat.json
new file mode 100644
index 000000000..fe856f14a
--- /dev/null
+++ b/test/data/validation/destinations/revenue_cat.json
@@ -0,0 +1,17 @@
+[
+ {
+ "config": {
+ "apiKey": "",
+ "xPlatform": "stripe"
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "apiKey": "str_1435jbakh012",
+ "xPlatform": "amazon"
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/rockerbox.json b/test/data/validation/destinations/rockerbox.json
new file mode 100644
index 000000000..ad7104661
--- /dev/null
+++ b/test/data/validation/destinations/rockerbox.json
@@ -0,0 +1,137 @@
+[
+ {
+ "config": {
+ "advertiserId": "test id",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "eventsMap": [
+ {
+ "from": "Product Added",
+ "to": "conv.add_to_cart"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "useNativeSDKToSend": {
+ "web": true
+ },
+ "clientAuthId": {
+ "web": "test-client-auth-id"
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing Sample"
+ }
+ ]
+ },
+ "customDomain": {
+ "web": ""
+ },
+ "enableCookieSync": {
+ "web": false
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "eventsMap": [
+ {
+ "from": "Product Added",
+ "to": "conv.add_to_cart"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "useNativeSDKToSend": {
+ "web": true
+ },
+ "clientAuthId": {
+ "web": "test-client-auth-id"
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing Sample"
+ }
+ ]
+ },
+ "customDomain": {
+ "web": ""
+ },
+ "enableCookieSync": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'advertiserId'"]
+ },
+ {
+ "config": {
+ "advertiserId": "test id",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "eventsMap": [
+ {
+ "from": "Product Added",
+ "to": "conv.add_to_cart"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ },
+ "useNativeSDKToSend": {
+ "web": true
+ },
+ "clientAuthId": {
+ "web": "test-client-auth-id"
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Marketing Sample"
+ }
+ ]
+ },
+ "customDomain": {
+ "web": "https://cookiedomain.com"
+ },
+ "enableCookieSync": {
+ "web": true
+ }
+ },
+ "result": true
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/rollbar_test.json b/test/data/validation/destinations/rollbar.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/rollbar_test.json
rename to test/data/validation/destinations/rollbar.json
diff --git a/src/validations/__tests__/validation_test_data/rs_test.json b/test/data/validation/destinations/rs.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/rs_test.json
rename to test/data/validation/destinations/rs.json
diff --git a/test/data/validation/destinations/s3.json b/test/data/validation/destinations/s3.json
new file mode 100644
index 000000000..6be637a5b
--- /dev/null
+++ b/test/data/validation/destinations/s3.json
@@ -0,0 +1,67 @@
+[
+ {
+ "config": {
+ "bucketName": "traveltesting",
+ "prefix": "load-GA",
+ "accessKeyID": "AKIAJOJJ2DSTMP1SB2IL",
+ "accessKey": "qsmYPTbeifaSdOD+Qqq2s+fsSmDQxF1ylqCfV0xa",
+ "enableSSE": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "prefix": "rudder",
+ "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
+ "accessKey": "VZElJiPgn/vBwKWEQk6RpbdOxZIQn1iS5CjE5vD8",
+ "enableSSE": true,
+ "testConnection": false,
+ "testConnectionTS": 1627655059687
+ },
+ "result": false,
+ "err": [" must have required property 'bucketName'"]
+ },
+ {
+ "config": {
+ "bucketName": "iqw.btex.deltalake.production",
+ "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
+ "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3",
+ "enableSSE": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "iqw.btex.deltalake.production",
+ "prefix": "tashforcenonsse/app_events/",
+ "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
+ "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "iqw.btex.deltalake.production",
+ "prefix": ["p1", "p2"],
+ "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
+ "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3",
+ "enableSSE": false
+ },
+ "result": false,
+ "err": ["prefix must be string"]
+ },
+ {
+ "config": {
+ "bucketName": "iqw.btex.deltalake.production",
+ "prefix": [
+ "p1qpqowoeujdjhfsjcbcnfhhruthgdhdhffpoahwbseytxyideodjfwoefhdwofwbqbckjqowjhdbsjhdhdbfdefbvbswdbswvdwvuqvqooiwqdwcwewef",
+ "p2"
+ ],
+ "accessKeyID": "ZKOAQLY2HJ7QLD6BLVF3",
+ "accessKey": "I1luLPZlFOkCfgZIkdAuzr1/fhjLXiHopKC4qvg3",
+ "enableSSE": false
+ },
+ "result": false,
+ "err": ["prefix must be string"]
+ }
+]
diff --git a/test/data/validation/destinations/s3_datalake.json b/test/data/validation/destinations/s3_datalake.json
new file mode 100644
index 000000000..fd8d29dd4
--- /dev/null
+++ b/test/data/validation/destinations/s3_datalake.json
@@ -0,0 +1,108 @@
+[
+ {
+ "config": {
+ "bucketName": "test-bucket",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket-test-bucket",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
+ ]
+ },
+ {
+ "config": {
+ "bucketName": "test.bucket",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "bucketName": "testBucket",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
+ ]
+ },
+ {
+ "config": {
+ "bucketName": "ab",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
+ ]
+ },
+ {
+ "config": {
+ "bucketName": "ab..ab",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
+ ]
+ },
+ {
+ "config": {
+ "bucketName": "xn--abc",
+ "useGlue": true,
+ "prefix": "xyzxx",
+ "namespace": "eu_new3",
+ "accessKeyID": "",
+ "accessKey": "",
+ "syncFrequency": "30",
+ "region": "us-east-1"
+ },
+ "result": false,
+ "err": [
+ "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/satismeter.json b/test/data/validation/destinations/satismeter.json
new file mode 100644
index 000000000..fb222d63c
--- /dev/null
+++ b/test/data/validation/destinations/satismeter.json
@@ -0,0 +1,63 @@
+[
+ {
+ "config": {
+ "writeKey": "dh9823rg2fy923f09",
+ "recordSatismeterEvents": true,
+ "identifyAnonymousUsers": true,
+ "updateEventNames": true,
+ "eventsToStandard": [
+ {
+ "from": "abc",
+ "to": "display"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "writeKey": "",
+ "recordSatismeterEvents": true,
+ "identifyAnonymousUsers": false,
+ "updateEventNames": true,
+ "eventsToStandard": [
+ {
+ "from": "abc",
+ "to": "dismiss"
+ },
+ {
+ "from": "abc",
+ "to": "complete"
+ },
+ {
+ "from": "def",
+ "to": "progress"
+ }
+ ],
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "result": false,
+ "err": ["writeKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ }
+]
diff --git a/test/data/validation/destinations/sendinblue.json b/test/data/validation/destinations/sendinblue.json
new file mode 100644
index 000000000..56aa69bfe
--- /dev/null
+++ b/test/data/validation/destinations/sendinblue.json
@@ -0,0 +1,114 @@
+[
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "doi": true,
+ "templateId": "2",
+ "redirectionUrl": "https://my.sendinblue.com/",
+ "sendTraitsInTrack": false,
+ "contactAttributeMapping": [
+ {
+ "from": "area_code",
+ "to": "AREA"
+ },
+ {
+ "from": "location",
+ "to": "LOCATION"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "doi": true,
+ "templateId": "2",
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "doi": true,
+ "templateId": "2",
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": false,
+ "err": [" must have required property 'clientKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "doi": true,
+ "templateId": "2"
+ },
+ "result": false,
+ "err": [" must have required property 'redirectionUrl'"]
+ },
+ {
+ "config": {
+ "apiKey": 1234,
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": false,
+ "err": ["apiKey must be string"]
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": 1234,
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": false,
+ "err": ["clientKey must be string"]
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "doi": true,
+ "templateId": "abc123",
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": false,
+ "err": ["templateId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""]
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "doi": true,
+ "templateId": 2,
+ "redirectionUrl": "https://my.sendinblue.com/"
+ },
+ "result": false,
+ "err": ["templateId must be string"]
+ },
+ {
+ "config": {
+ "apiKey": "xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0",
+ "clientKey": "1vd0i6w1al7q38ap5kucurfy",
+ "doi": true,
+ "templateId": "2",
+ "redirectionUrl": "xyz"
+ },
+ "result": false,
+ "err": [
+ "redirectionUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/sentry.json b/test/data/validation/destinations/sentry.json
new file mode 100644
index 000000000..8f4941300
--- /dev/null
+++ b/test/data/validation/destinations/sentry.json
@@ -0,0 +1,67 @@
+[
+ {
+ "config": {
+ "dsn": "https://42152b1ac22647378fd808fbdb442798@o1142740.ingest.sentry.io/6201791",
+ "environment": "production",
+ "customVersionProperty": "window.kaholo.version",
+ "release": "window.kaholo.version",
+ "serverName": "server",
+ "logger": "sentry",
+ "debugMode": false,
+ "eventFilteringOption": "disable",
+ "ignoreErrors": [{ "ignoreErrors": "" }],
+ "includePaths": [{ "includePaths": "" }],
+ "allowUrls": [{ "allowUrls": "" }],
+ "denyUrls": [{ "denyUrls": "" }],
+ "whitelistedEvents": [{ "eventName": "" }],
+ "blacklistedEvents": [{ "eventName": "" }],
+ "useNativeSDK": { "web": true },
+ "oneTrustCookieCategories": {
+ "web": [{ "oneTrustCookieCategory": "Debugging" }]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "dsn": "https://eed83226fcb849babf7982f074cf86f0@o1069456.ingest.sentry.io/6064106",
+ "environment": "production",
+ "customVersionProperty": "",
+ "release": "",
+ "serverName": "",
+ "logger": "",
+ "debugMode": false,
+ "ignoreErrors": [{ "ignoreErrors": "" }],
+ "includePaths": [{ "includePaths": "" }],
+ "allowUrls": [{ "allowUrls": "" }],
+ "denyUrls": [{ "denyUrls": "" }],
+ "useNativeSDK": { "web": true },
+ "blacklistedEvents": {},
+ "whitelistedEvents": {},
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] }
+ },
+ "result": false,
+ "err": ["whitelistedEvents must be array", "blacklistedEvents must be array"]
+ },
+ {
+ "config": {
+ "dsn": "https://eed83226fcb849babf7982f074cf86f0@o1069456.ingest.sentry.io/6064106",
+ "environment": "development",
+ "customVersionProperty": "",
+ "release": "",
+ "serverName": "",
+ "logger": "",
+ "debugMode": false,
+ "ignoreErrors": [{ "ignoreErrors": "" }],
+ "includePaths": [{ "includePaths": "" }],
+ "allowUrls": [{ "allowUrls": "" }],
+ "denyUrls": [{ "denyUrls": "" }],
+ "useNativeSDK": { "web": true },
+ "blackListedEvents": {},
+ "whiteListedEvents": {},
+ "oneTrustCookieCategories": { "web": [{ "oneTrustCookieCategory": "" }] }
+ },
+ "result": false,
+ "err": [" must NOT have additional properties", " must NOT have additional properties"]
+ }
+]
diff --git a/test/data/validation/destinations/shynet.json b/test/data/validation/destinations/shynet.json
new file mode 100644
index 000000000..ab7eedf51
--- /dev/null
+++ b/test/data/validation/destinations/shynet.json
@@ -0,0 +1,35 @@
+[
+ {
+ "config": {
+ "heartBeatFrequencyInMs": "11234",
+ "shynetServiceUrl": "https://localhost:5555/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "heartBeatFrequencyInMs": "",
+ "shynetServiceUrl": "http://localhost:5555/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "heartBeatFrequencyInMs": "5000000000000000000000000000000000000",
+ "shynetServiceUrl": "https://wwww.mysite.com/ingress/5b3470a9-be69-4298-9ec1-354354354wefdv/script.js"
+ },
+ "result": false,
+ "err": [
+ "heartBeatFrequencyInMs must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,10})$\""
+ ]
+ },
+ {
+ "config": {
+ "heartBeatFrequencyInMs": "2000",
+ "shynetServiceUrl": ""
+ },
+ "err": [
+ "shynetServiceUrl must match pattern \"^(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$\""
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/singular.json b/test/data/validation/destinations/singular.json
new file mode 100644
index 000000000..a2b804d1b
--- /dev/null
+++ b/test/data/validation/destinations/singular.json
@@ -0,0 +1,83 @@
+[
+ {
+ "config": {
+ "apiKey": "nowstack_3a8df6629b0be0cf6xxa22fb2220e929_811168a9",
+ "apiSecret": "",
+ "eventFilteringOption": "disable",
+ "sessionEventList": [
+ {
+ "sessionEventName": "App Session New"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "android": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "apiSecret": "h2rh3g23hr92rh9hfew",
+ "eventFilteringOption": "disable",
+ "sessionEventList": [
+ {
+ "sessionEventName": "App Session New"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "android": true
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "nowstack_3a8df6629b0be0cf6xxa22fb2220e929_811168a9",
+ "apiSecret": "gidawgaigfa",
+ "eventFilteringOption": "disable",
+ "sessionEventList": [
+ {
+ "sessionEventName": "Application Session"
+ },
+ {
+ "sessionEventName": "New Campaign Session"
+ }
+ ],
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "useNativeSDK": {
+ "android": true
+ }
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/slack.json b/test/data/validation/destinations/slack.json
new file mode 100644
index 000000000..990a6e76a
--- /dev/null
+++ b/test/data/validation/destinations/slack.json
@@ -0,0 +1,53 @@
+[
+ {
+ "config": {
+ "identifyTemplate": "",
+ "webhookUrl": "",
+ "eventChannelSettings": [{ "eventName": "", "eventChannel": "", "eventRegex": false }],
+ "eventTemplateSettings": [{ "eventName": "", "eventTemplate": "", "eventRegex": false }],
+ "whitelistedTraitsSettings": [{ "trait": "" }]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "identifyTemplate": "",
+ "webhookUrl": "https://hooks.slack.com/services/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",
+ "eventChannelSettings": [
+ { "eventName": "XYZ", "eventChannel": "@srikanth", "eventRegex": false }
+ ],
+ "eventTemplateSettings": [
+ {
+ "eventName": "abc",
+ "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
+ "eventRegex": false
+ }
+ ],
+ "whitelistedTraitsSettings": [{ "trait": "" }]
+ },
+ "result": true
+ },
+ { "config": { "identifyTemplate": "", "webhookUrl": "" }, "result": true },
+ {
+ "config": {
+ "identifyTemplate": "",
+ "webhookUrl": "https://hooks.slack.com/services/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",
+ "eventChannelSettings": [
+ { "eventName": "XYZ", "eventChannel": "@srikanth", "eventRegex": false }
+ ],
+ "eventTemplateSettings": [
+ {
+ "eventName": 1234,
+ "eventTemplate": "a: {{properties.a}} {{properties.newLine}} b: {{properties.b}}",
+ "eventRegex": "false"
+ }
+ ],
+ "whitelistedTraitsSettings": [{ "trait": "" }]
+ },
+ "result": false,
+ "err": [
+ "eventTemplateSettings.0.eventName must be string",
+ "eventTemplateSettings.0.eventRegex must be boolean"
+ ]
+ }
+]
diff --git a/test/data/validation/destinations/snapchat_conversion.json b/test/data/validation/destinations/snapchat_conversion.json
new file mode 100644
index 000000000..743066226
--- /dev/null
+++ b/test/data/validation/destinations/snapchat_conversion.json
@@ -0,0 +1,34 @@
+[
+ {
+ "config": {
+ "apiKey": "MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
+ "pixelId": "836d6231-aad6-4e41-9cbb-5854565cad8e",
+ "enableDeduplication": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "pixelId": "836d6231-aad6-4e41-9cbb-5854565cad8e",
+ "enableDeduplication": true,
+ "deduplicationKey": "messageId"
+ },
+ "result": false,
+ "err": [" must have required property 'apiKey'"]
+ },
+ {
+ "config": {
+ "apiKey": "MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg",
+ "pixelId": "836d6231-aad6-4e41-9cbb-5854565cad8e",
+ "enableDeduplication": true,
+ "deduplicationKey": "messageId",
+ "rudderEventsToSnapEvents": [
+ {
+ "from": "prodSearch",
+ "to": "products_searched"
+ }
+ ]
+ },
+ "result": true
+ }
+]
diff --git a/test/data/validation/destinations/snapengage.json b/test/data/validation/destinations/snapengage.json
new file mode 100644
index 000000000..82b393488
--- /dev/null
+++ b/test/data/validation/destinations/snapengage.json
@@ -0,0 +1,61 @@
+[
+ {
+ "config": {
+ "widgetId": "11234",
+ "recordLiveChatEvents": true,
+ "updateEventNames": true,
+ "eventsToStandard": [
+ {
+ "from": "abc",
+ "to": "startChat"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "widgetId": "11234",
+ "recordLiveChatEvents": true,
+ "updateEventNames": true,
+ "eventsToStandard": [
+ {
+ "from": "abc",
+ "to": "startChat"
+ },
+ {
+ "from": "abc",
+ "to": "chatMessageSent"
+ },
+ {
+ "from": "def",
+ "to": "chatMessageReceived"
+ }
+ ]
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "widgetId": "11234",
+ "recordLiveChatEvents": true,
+ "updateEventNames": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "widgetId": "",
+ "recordLiveChatEvents": true,
+ "updateEventNames": true,
+ "eventsToStandard": [
+ {
+ "from": "abc",
+ "to": "startChat"
+ }
+ ]
+ },
+ "result": false,
+ "err": ["widgetId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/snowflake_test.json b/test/data/validation/destinations/snowflake.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/snowflake_test.json
rename to test/data/validation/destinations/snowflake.json
diff --git a/test/data/validation/destinations/vero.json b/test/data/validation/destinations/vero.json
new file mode 100644
index 000000000..d3d7758ff
--- /dev/null
+++ b/test/data/validation/destinations/vero.json
@@ -0,0 +1,103 @@
+[
+ {
+ "config": {
+ "authToken": "MOx2ZmMwLNE2A2IdNKL0N2VhN2I3ZGY1MTVmMzA1ODk0YmIkNDZhNTojMTk3YTBlMTg1YmU1NWM0MDA2ZDVmZjY0ZGFiOTVkNDMyYTcwOWFk",
+ "apiKey": {
+ "web": "755fc11162r14c41ar7e7df232f305984bb021a1"
+ },
+ "useNativeSDK": {
+ "web": false
+ },
+ "blacklistedEvents": {
+ "web": [
+ {
+ "eventName": "Pin Generated"
+ },
+ {
+ "eventName": "Pin Expired"
+ }
+ ]
+ },
+ "whitelistedEvents": {
+ "web": [
+ {
+ "eventName": ""
+ }
+ ]
+ },
+ "eventFilteringOption": {
+ "web": "blacklistedEvents"
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": "Sales"
+ },
+ {
+ "oneTrustCookieCategory": "Marketing"
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["whitelistedEvents must be array", "blacklistedEvents must be array"]
+ },
+ {
+ "config": {
+ "authToken": "wbiwefbwiefbfkbfwekj",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "apiKey": {
+ "web": "bkajbdskasbdkbadasdsa"
+ },
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "apiKey": "djykdftkuf",
+ "useNativeSDK": {
+ "web": false
+ },
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ }
+ },
+ "result": false,
+ "err": ["apiKey must be object"]
+ }
+]
diff --git a/test/data/validation/destinations/vwo.json b/test/data/validation/destinations/vwo.json
new file mode 100644
index 000000000..15c9f2666
--- /dev/null
+++ b/test/data/validation/destinations/vwo.json
@@ -0,0 +1,109 @@
+[
+ {
+ "config": {
+ "accountId": "68869",
+ "isSPA": true,
+ "sendExperimentTrack": false,
+ "sendExperimentIdentify": true,
+ "eventFilteringOption": "blacklistedEvents",
+ "libraryTolerance": "2500",
+ "settingsTolerance": "2000",
+ "useExistingJquery": true,
+ "whitelistedEvents": [],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ },
+ {
+ "eventName": "b2"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "accountId": "68869",
+ "isSPA": true,
+ "sendExperimentTrack": false,
+ "sendExperimentIdentify": true,
+ "eventFilteringOption": "whitelistedEvents",
+ "libraryTolerance": "2500",
+ "settingsTolerance": "2000",
+ "useExistingJquery": true,
+ "whitelistedEvents": [
+ {
+ "eventName": "w1 allowed"
+ },
+ {
+ "eventName": "w2 allowed"
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ },
+ {
+ "eventName": "b2"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "isSPA": true,
+ "sendExperimentTrack": false,
+ "sendExperimentIdentify": true,
+ "eventFilteringOption": "blacklistedEvents",
+ "libraryTolerance": "2500",
+ "settingsTolerance": "2000",
+ "useExistingJquery": true,
+ "whitelistedEvents": [],
+ "blacklistedEvents": [
+ {
+ "eventName": "b1"
+ },
+ {
+ "eventName": "b2"
+ }
+ ],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": false,
+ "err": [" must have required property 'accountId'"]
+ },
+ {
+ "config": {
+ "accountId": "68869",
+ "isSPA": true,
+ "sendExperimentTrack": true,
+ "sendExperimentIdentify": false,
+ "eventFilteringOption": "whitelistedEvents",
+ "libraryTolerance": "1500",
+ "settingsTolerance": "2300",
+ "useExistingJquery": true,
+ "whitelistedEvents": [
+ {
+ "eventName": {
+ "name": "whitelistedEventObject1"
+ }
+ }
+ ],
+ "blacklistedEvents": [],
+ "useNativeSDK": {
+ "web": true
+ }
+ },
+ "result": false,
+ "err": ["whitelistedEvents.0.eventName must be string"]
+ }
+]
diff --git a/test/data/validation/destinations/webengage.json b/test/data/validation/destinations/webengage.json
new file mode 100644
index 000000000..287cebab0
--- /dev/null
+++ b/test/data/validation/destinations/webengage.json
@@ -0,0 +1,30 @@
+[
+ {
+ "config": {
+ "licenseCode": "",
+ "apiKey": "asdf123sad",
+ "dataCenter": "standard"
+ },
+ "result": false,
+ "err": [
+ "licenseCode must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "licenseCode": "adhs123",
+ "apiKey": "",
+ "dataCenter": "ind"
+ },
+ "result": false,
+ "err": ["apiKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "licenseCode": "adhs123",
+ "apiKey": "ajsdgkh21",
+ "dataCenter": "standard"
+ },
+ "result": true
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/webhook_test.json b/test/data/validation/destinations/webhook.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/webhook_test.json
rename to test/data/validation/destinations/webhook.json
diff --git a/test/data/validation/destinations/woopra.json b/test/data/validation/destinations/woopra.json
new file mode 100644
index 000000000..61ea5ae7d
--- /dev/null
+++ b/test/data/validation/destinations/woopra.json
@@ -0,0 +1,35 @@
+[
+ {
+ "config": {
+ "projectName": "abcwork.com",
+ "cookieName": "iugefiu23",
+ "cookiePath": "folder/tmp",
+ "cookieDomain": "testing.com",
+ "clickTracking": false,
+ "downloadTracking": true,
+ "hideCampaign": true,
+ "idleTimeout": "30000",
+ "ignoreQueryUrl": false,
+ "outgoingIgnoreSubdomain": true,
+ "outgoingTracking": true
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "projectName": "abc1",
+ "cookieName": "iugefiu23",
+ "cookiePath": "folder/tmp",
+ "cookieDomain": "testing.com",
+ "clickTracking": false,
+ "downloadTracking": true,
+ "hideCampaign": true,
+ "idleTimeout": "20000",
+ "ignoreQueryUrl": false,
+ "outgoingIgnoreSubdomain": true,
+ "outgoingTracking": true
+ },
+ "result": false,
+ "err": ["projectName must match pattern \"^(([a-z0-9]+[.])+[a-z]{1,})$\""]
+ }
+]
diff --git a/test/data/validation/destinations/wootric.json b/test/data/validation/destinations/wootric.json
new file mode 100644
index 000000000..b187f3f7b
--- /dev/null
+++ b/test/data/validation/destinations/wootric.json
@@ -0,0 +1,37 @@
+[
+ {
+ "config": {
+ "username": "testUser@example.com",
+ "password": "Hn7zefEy9FNYz$!J",
+ "accountToken": "NPS-8f872341"
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "username": "",
+ "password": "Hn7zefEy9FNYz$!J",
+ "accountToken": "NPS-8f872341"
+ },
+ "result": false,
+ "err": ["username must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "username": "",
+ "password": "Hn7zefEy9FNYz$!J",
+ "accountToken": "NPS-8f872341"
+ },
+ "result": false,
+ "err": ["username must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "username": "testUser@example.com",
+ "password": "Hn7zefEy9FNYz",
+ "accountToken": 8872341
+ },
+ "result": false,
+ "err": ["accountToken must be string"]
+ }
+]
diff --git a/test/data/validation/destinations/yahoo_dsp.json b/test/data/validation/destinations/yahoo_dsp.json
new file mode 100644
index 000000000..79eafedfc
--- /dev/null
+++ b/test/data/validation/destinations/yahoo_dsp.json
@@ -0,0 +1,101 @@
+[
+ {
+ "config": {
+ "clientId": "",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "138383",
+ "accountId": "42423",
+ "audienceType": "EMAIL",
+ "hashRequired": false
+ },
+ "result": false,
+ "err": ["clientId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "",
+ "audienceId": "138383",
+ "accountId": "42423",
+ "audienceType": "EMAIL",
+ "hashRequired": false
+ },
+ "result": false,
+ "err": [
+ "clientSecret must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""
+ ]
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "138383",
+ "accountId": "42423",
+ "audienceType": "DEVICE_ID",
+ "seedListType": "GPADVID",
+ "hashRequired": false
+ },
+ "result": true
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "",
+ "accountId": "42423",
+ "audienceType": "EMAIL",
+ "hashRequired": false
+ },
+ "result": false,
+ "err": ["audienceId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""]
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "138383",
+ "accountId": "",
+ "audienceType": "EMAIL",
+ "hashRequired": false
+ },
+ "result": false,
+ "err": ["accountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""]
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "138383",
+ "accountId": "53421",
+ "audienceType": "",
+ "hashRequired": false
+ },
+ "result": false,
+ "err": ["audienceType must match pattern \"^(EMAIL|DEVICE_ID|IP_ADDRESS)$\""]
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "138383",
+ "accountId": "53421",
+ "audienceType": "DEVICE_ID",
+ "seedListType": "",
+ "hashRequired": false
+ },
+ "result": false,
+ "err": ["seedListType must match pattern \"^(GPADVID|IDFA)$\""]
+ },
+ {
+ "config": {
+ "clientId": "a43deb8-a123-4cd6-b4c5-958b3d66d431",
+ "clientSecret": "dheAscasz6yc9LrRRIPimE9h5dssfdsLccXTykHCcA6eEoFR4rXQ",
+ "audienceId": "138383",
+ "accountId": "53421",
+ "audienceType": "DEVICE_ID",
+ "hashRequired": ""
+ },
+ "result": false,
+ "err": ["hashRequired must be boolean"]
+ }
+]
diff --git a/test/data/validation/destinations/yandex_metrica.json b/test/data/validation/destinations/yandex_metrica.json
new file mode 100644
index 000000000..a80688d60
--- /dev/null
+++ b/test/data/validation/destinations/yandex_metrica.json
@@ -0,0 +1,377 @@
+[
+ {
+ "config": {
+ "tagId": "",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "add"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["tagId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\""]
+ },
+ {
+ "config": {
+ "tagId": "34324223",
+ "clickMap": "false",
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "add"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["clickMap must be boolean"]
+ },
+ {
+ "config": {
+ "tagId": "34324223",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "",
+ "eventNameToYandexEvent": [
+ {
+ "from": true,
+ "to": "add"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["eventNameToYandexEvent.0.from must be string"]
+ },
+ {
+ "config": {
+ "tagId": "34324223",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": false,
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "add"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["containerName must be string"]
+ },
+ {
+ "config": {
+ "tagId": "34324223",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "add"
+ }
+ ],
+ "goalId": "43dfd443",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["goalId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\""]
+ },
+ {
+ "config": {
+ "tagId": "43849343",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "purchase"
+ },
+ {
+ "from": "Viewing Product",
+ "to": "detail"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": "false"
+ }
+ },
+ "result": false,
+ "err": ["useNativeSDK.web must be boolean"]
+ },
+ {
+ "config": {
+ "tagId": "43849343",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "purchase"
+ },
+ {
+ "from": "Viewing Product",
+ "to": "detail"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": 123
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["whitelistedEvents.0.eventName must be string"]
+ },
+ {
+ "config": {
+ "tagId": "43849343",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "purchase"
+ },
+ {
+ "from": "Viewing Product",
+ "to": "detail"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": true,
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": false,
+ "err": ["eventFilteringOption must be string"]
+ },
+ {
+ "config": {
+ "tagId": "43849343",
+ "clickMap": false,
+ "trackLinks": false,
+ "trackBounce": false,
+ "webvisor": false,
+ "containerName": "dataLayer",
+ "eventNameToYandexEvent": [
+ {
+ "from": "Order Done",
+ "to": "purchase"
+ },
+ {
+ "from": "Viewing Product",
+ "to": "detail"
+ }
+ ],
+ "goalId": "4342432",
+ "eventFilteringOption": "disable",
+ "whitelistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "blacklistedEvents": [
+ {
+ "eventName": ""
+ }
+ ],
+ "oneTrustCookieCategories": {
+ "web": [
+ {
+ "oneTrustCookieCategory": ""
+ }
+ ]
+ },
+ "useNativeSDK": {
+ "web": false
+ }
+ },
+ "result": true
+ }
+]
diff --git a/src/validations/__tests__/validation_test_data/zapier_test.json b/test/data/validation/destinations/zapier.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/zapier_test.json
rename to test/data/validation/destinations/zapier.json
diff --git a/src/validations/__tests__/validation_test_data/zendesk_test.json b/test/data/validation/destinations/zendesk.json
similarity index 100%
rename from src/validations/__tests__/validation_test_data/zendesk_test.json
rename to test/data/validation/destinations/zendesk.json
diff --git a/test/validation.test.ts b/test/validation.test.ts
new file mode 100644
index 000000000..fd1c74cae
--- /dev/null
+++ b/test/validation.test.ts
@@ -0,0 +1,131 @@
+/* eslint-disable no-console */
+/* eslint-disable max-len */
+import fs from 'fs';
+import path from 'path';
+import Commander from 'commander';
+import { init, validateConfig } from '../src';
+
+const command = new Commander.Command();
+command
+ .allowUnknownOption()
+ .option('-d, --destinations ', 'Enter destination names separated by comma', 'all')
+ .option('-s, --sources ', 'Enter source names separated by comma', 'all')
+ .parse();
+
+const cmdOpts = command.opts();
+
+function getIntegrationNames(type) {
+ const dirPath = path.resolve(`src/configurations/${type}`);
+ return fs.readdirSync(dirPath).filter((file) => fs.statSync(`${dirPath}/${file}`).isDirectory());
+}
+
+function getIntegrationData(name, type) {
+ let intgData;
+ try {
+ intgData = JSON.parse(
+ fs.readFileSync(path.resolve(__dirname, `./data/validation/${type}/${name}.json`), 'utf-8'),
+ );
+ } catch (e) {
+ // console.error(e);
+ // console.error(`Unable to load test data for: "${name}" (${type})`);
+ }
+ return intgData;
+}
+
+let destList: string[] = [];
+if (cmdOpts.destinations !== 'all') {
+ destList = cmdOpts.destinations
+ .split(',')
+ .map((x: string) => x.trim())
+ .filter((x: string) => x);
+ console.log(`Destinations specified: ${destList}`);
+} else {
+ destList = getIntegrationNames('destinations');
+}
+const destTcData = {};
+destList.forEach((d) => {
+ const intgData = getIntegrationData(d, 'destinations');
+ if (intgData) destTcData[d] = intgData;
+});
+
+let srcList: string[] = [];
+if (cmdOpts.sources !== 'all') {
+ srcList = cmdOpts.sources
+ .split(',')
+ .map((x: string) => x.trim())
+ .filter((x: string) => x);
+ console.log(`Sources specified: ${srcList}`);
+} else {
+ srcList = getIntegrationNames('sources');
+}
+const srcTcData = {};
+srcList.forEach((s) => {
+ const intgData = getIntegrationData(s, 'sources');
+ if (intgData) srcTcData[s] = intgData;
+});
+
+describe('Core Tests', () => {
+ it('If invalid integration name is provide, throw error', async () => {
+ expect(() => {
+ validateConfig('', {}, 'destinations', true);
+ }).toThrow('Missing definitionName');
+ });
+
+ it('If unknown integration name is provided, throw error', async () => {
+ await init();
+
+ const invalidIntg = 'INVALID_INTEGRATION_NAME';
+ expect(() => {
+ validateConfig(invalidIntg, {}, 'destinations', true);
+ }).toThrow(`No validation method found for definition ${invalidIntg}`);
+ });
+
+ it('If unknown integration name is provided and throw errors flag is disabled, no error should be thrown', async () => {
+ await init();
+
+ const invalidIntg = 'INVALID_INTEGRATION_NAME';
+ expect(() => {
+ validateConfig(invalidIntg, {}, 'destinations');
+ }).not.toThrow();
+ });
+});
+
+describe('Validation Tests', () => {
+ beforeAll(async () => {
+ await init();
+ });
+
+ // Destination tests
+ Object.keys(destTcData).forEach((dest: string, destIdx: number) => {
+ describe(`${destIdx + 1}. Destination - ${dest}`, () => {
+ destTcData[dest].forEach((td: Record, tcIdx: number) => {
+ it(`TC ${tcIdx + 1}`, async () => {
+ if (td.result === true) {
+ expect(validateConfig(dest, td.config, 'destinations', true)).toBeUndefined();
+ } else {
+ expect(() => {
+ validateConfig(dest, td.config, 'destinations', true);
+ }).toThrow(JSON.stringify(td.err));
+ }
+ });
+ });
+ });
+ });
+
+ // Source tests
+ Object.keys(srcTcData).forEach((src: string, srcIdx: number) => {
+ describe(`${srcIdx + 1}. Source - ${src}`, () => {
+ srcTcData[src].forEach((td: Record, tcIdx: number) => {
+ it(`TC ${tcIdx + 1}`, async () => {
+ if (td.result === true) {
+ expect(validateConfig(src, td.config, 'sources', true)).toBeUndefined();
+ } else {
+ expect(() => {
+ validateConfig(src, td.config, 'sources', true);
+ }).toThrow(JSON.stringify(td.err));
+ }
+ });
+ });
+ });
+ });
+});
diff --git a/tsconfig.json b/tsconfig.json
index 8090e9c76..44fe22170 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,5 +1,4 @@
{
- "extends": "./tsconfig.paths.json",
"compilerOptions": {
/* Basic Options */
// "incremental": true, /* Enable incremental compilation */
@@ -59,12 +58,6 @@
"experimentalDecorators": true /* Enables experimental support for ES7 decorators. */,
"emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */
},
- "include": [
- "./**/*.ts",
- "./**/*.js",
- ],
- "exclude": [
- "dist",
- "node_modules",
- ]
+ "include": ["./**/*.ts", "./**/*.js"],
+ "exclude": ["test", "dist", "node_modules"]
}
diff --git a/tsconfig.paths.json b/tsconfig.paths.json
deleted file mode 100644
index 4d27f0dad..000000000
--- a/tsconfig.paths.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "compilerOptions": {
- "paths": {
- "src/*": ["src/*"]
- }
- }
-}